home *** CD-ROM | disk | FTP | other *** search
/ Megahits 6 / Megahits 6 (1995)(GTI - Rhein-Main-Soft)(DE)(Disc 2 of 2)[!].iso / time_ungepackt / time_361_390 / time_380 / mt-rechnung / mt-rechnungii < prev    next >
Text File  |  1995-07-15  |  98KB  |  2,947 lines

  1. /*
  2. $VER: MT-RechnungII 2.26 (22.01.95)
  3.  ******************************************************************/
  4. /*    Rechnungsprogramm für meine Bild- und Videobearbeitungsfirma    */
  5. /*                                MT Graphic & Design                                */
  6. /******************************************************************/
  7. /*    Autor:                    Manfred Tremmel                                    */
  8. /*    Programmiersprache:    ARexx                                                    */
  9. /******************************************************************/
  10.  
  11. IF(~show('l','rexxsupport.library')) THEN
  12.     CALL addlib('rexxsupport.library',0,-30,0);
  13. IF(~show('l','apig.library')) THEN
  14.     CALL addlib('apig.library',0,-30,0);
  15. IF(~show('l','rexxreqtools.library')) THEN
  16.     CALL addlib('rexxreqtools.library',0,-30,0);
  17. CALL SET_APIG_GLOBALS();
  18.  
  19. i = allocmem(346); 
  20. x = getscreendata(i,346,WBENCHSCREEN,0);
  21. SCREEN_X    = GETVALUE(i,12,2,'n');
  22. SCREEN_Y    = GETVALUE(i,14,2,'n');
  23. Font_X    = GETVALUE(i,145,1,'n');
  24. Font_Y    = GETVALUE(i,143,1,'n');
  25. call freemem(i,346);
  26.  
  27. i = allocmem(232);
  28. x = getprefs(i,232);
  29. B_laenge = GETVALUE(i,178,2,'n');
  30. call freemem(i,232);
  31.  
  32. winidcmp    = GADGETUP+VANILLAKEY+CLOSEWINDOW;
  33. winflags    = ACTIVATE+RMBTRAP+WINDOWCLOSE+WINDOWDRAG+GIMMEZEROZERO+WINDOWDEPTH;
  34.  
  35. wintitle    = "MT-Rechnung";
  36. Win_X1    = 29 * Font_X;
  37. Win_Y1    = 18 * Font_Y;
  38.  
  39. wintitle2    = "MT-Rechnung - Rechnung erstellen";
  40. Win_X2    = 80 * Font_X;
  41. Win_Y2    = 35 * Font_Y;
  42. IF SCREEN_Y < Win_Y2 THEN
  43.     do; 
  44.         Win_Y2    = 32 * Font_Y;
  45.         I_max        = 11;
  46.     end;
  47. ELSE
  48.     I_max        = 13;
  49.  
  50. wintitle3    = "MT-Rechnung - Drucken";
  51. Win_X3    = 45 * Font_X;
  52. Win_Y3    = Win_Y1;
  53.  
  54. wintitle4    = "MT-Rechnung - Adressen verwalten";
  55. Win_X4    = Win_X2;
  56. Win_Y4    = 32 * Font_Y;
  57.  
  58. wintitle5    = "MT-Rechnung - Artikel verwalten";
  59. Win_X5    = Win_X2;
  60. Win_Y5    = 14 * Font_Y;
  61.  
  62. wintitle6    = "MT-Rechnung - Prefs";
  63. Win_X6    = 23 * Font_X;
  64. Win_Y6    = 19 * Font_Y;
  65.  
  66. LF = '0a'x;
  67. FF = '0c'x;
  68. CR = '0d'x;
  69.  
  70. ReqCent = "rt_reqpos=reqpos_centerscr";
  71.  
  72. IF SCREEN_X < Win_X2 | SCREEN_Y < Win_Y2 THEN
  73.     rtezrequest("Workbench Screen muß mindestens" LF ||,
  74.         Win_X2  "x" Win_Y2 "Bildpunkte groß sein!",,,ReqCent);
  75. ELSE
  76.     DO;
  77.         datum = UP_Datum();                            /* Ermittlung des Datums*/
  78.         CALL UP_Kund_lesen;                            /* Einlesen der Kunden    */
  79.         CALL UP_Artikel_lesen;                        /* Einlesen der Artikel    */
  80.         CALL UP_Rechnung_lesen;                        /* Einlesen der Rechn.    */
  81.         CALL UP_Prefs_lesen;                            /* Einlesen der Prefs    */
  82.  
  83.         call DefineGads1;
  84.         DefGads2 = 0;
  85.         DefGads3 = 0;
  86.         DefGads4 = 0;
  87.         DefGads5 = 0;
  88.         DefGads6 = 0;
  89.  
  90.         portname = "MT_Rechnung";
  91.         p = openport(portname);
  92.  
  93.         WaitForPort portname;
  94.         w1        = OPENWINDOW(portname,(Screen_X-Win_X1)/2,(Screen_Y-Win_Y1)/2,Win_X1,Win_Y1,0,1,winidcmp,winflags,
  95.                     ,wintitle,scr,0,null(),null(),conxgad);
  96.         rpw1    = GETWINDOWRASTPORT(w1);
  97.  
  98.         call GT_REFRESHWINDOW(w1,null());
  99.         extime    = 0;
  100.         apen        = 1;
  101.         DO WHILE extime = 0;
  102.             x    = waitpkt(portname);
  103.             DO FOREVER;
  104.                 msg        = getpkt(portname);
  105.                 IF msg    = '0000 0000'x THEN LEAVE;
  106.                 msgclass    = getarg(msg,0);
  107.                 msgcode    = getarg(msg,1);
  108.                 msgid        = getarg(msg,9);
  109.                 x            = reply(msg,0);
  110.                 SELECT
  111.                     WHEN msgid = 10 | msgcode = 65 | msgcode = 97 THEN
  112.                         CALL UP_Adressen;
  113.                     WHEN msgid = 12 | msgcode = 84 | msgcode = 116 THEN
  114.                         CALL UP_Artikel;
  115.                     WHEN msgid = 13 | msgcode = 82 | msgcode = 114 THEN
  116.                         CALL UP_Rechnung;
  117.                     WHEN msgid = 14 | msgcode = 68 | msgcode = 100 THEN
  118.                         CALL UP_Drucken;
  119.                     WHEN msgid = 15 | msgcode = 80 | msgcode = 112 THEN
  120.                         CALL UP_Prefs;
  121.                     WHEN msgid = 17 | msgclass = CLOSEWINDOW | msgcode = 69 | msgcode = 101 | msgcode = 27 THEN
  122.                         extime = rtezrequest("Programm wirklich beenden?","Ende|Weitermachen",,ReqCent);
  123.                     OTHERWISE
  124.                         NOP;
  125.                 END;
  126.             END;
  127.         END;
  128.         CALL CLOSEWINDOW(w1);
  129.  
  130.         CALL FREEGADGETS(conxgad);
  131.         CALL FREETHIS(newgadx);
  132.         CALL FREEVEC(GPoint);
  133.         IF DefGads2 > 0 THEN
  134.             DO;
  135.                 IF DefGads2    > 1 THEN
  136.                     CALL UP_Rechnung_schreiben;
  137.                 CALL FREEGADGETS(conxgad2);
  138.                 CALL FREETHIS(newgadx2);
  139.                 CALL FREEVEC(GPoint2);
  140.             END;
  141.         IF DefGads3 > 0 THEN
  142.             DO;
  143.                 CALL FREEGADGETS(conxgad3);
  144.                 CALL FREETHIS(newgadx3);
  145.                 CALL FREEVEC(GPoint3);
  146.                 Call FREETHIS(mylabels);
  147.             END;
  148.         IF DefGads4 > 0 THEN
  149.             DO;
  150.                 IF DefGads4    > 1 THEN
  151.                     CALL UP_Kund_schreiben;
  152.                 CALL FREEGADGETS(conxgad4);
  153.                 CALL FREETHIS(newgadx4);
  154.                 CALL FREEVEC(GPoint4);
  155.                 CALL FREETHIS(Kundlabels);
  156.             END;
  157.         IF DefGads5 > 0 THEN
  158.             DO;
  159.                 IF DefGads5    > 1 THEN
  160.                     CALL UP_Artikel_schreiben;
  161.                 CALL FREEGADGETS(conxgad5);
  162.                 CALL FREETHIS(newgadx5);
  163.                 CALL FREEVEC(GPoint5);
  164.             END;
  165.         IF DefGads6 > 0 THEN
  166.             DO;
  167.                 IF DefGads6 > 1 THEN
  168.                     CALL UP_Prefs_schreiben;
  169.                 CALL FREEGADGETS(conxgad6);
  170.                 CALL FREETHIS(newgadx6);
  171.                 CALL FREEVEC(GPoint6);
  172.             END;
  173.  
  174.         CALL FREEVISUALINFO(scrvinfo);
  175.         CALL UNLOCKPUBSCREEN(null(),scr);
  176.     END;
  177. CALL remlib('rexxreqtools.library');
  178. CALL remlib('apig.library');
  179. CALL remlib('rexxsupport.library');
  180. address COMMAND 'avail >NIL: flush'
  181. EXIT;
  182.  
  183. /* Unterprogramm zum Einlesen der Einstellungen (Prefs.dat)            */
  184. UP_Prefs_lesen:
  185.     Prefs_datei    = "Prefs.dat";
  186.     IF OPEN(P_dat,Prefs_datei,'read') THEN
  187.         DO;
  188.             MWSt_Satz.1 = READLN(P_dat);
  189.             MWSt_Satz.2 = READLN(P_dat);
  190.             Druckdatei    = READLN(P_dat);
  191.             Druckport    = READLN(P_dat);
  192.             D_XAbst        = READLN(P_dat);
  193.             D_YAbst        = READLN(P_dat);
  194.             CLOSE(P_dat);
  195.         END;
  196.     ELSE
  197.         DO;
  198.             MWSt_Satz.1    = 15.0;
  199.             MWSt_Satz.2 = 7.0;
  200.             Druckdatei    = "Drucker/PrefPrinter";
  201.             Druckport    = "PRT:";
  202.             D_XAbst        = 1;
  203.             D_YAbst        = 1;
  204.         END;
  205.     Call UP_Druckdaten_lesen;
  206.     MWSt_Rech.1 = MWSt_Satz.1 / (100 + MWSt_Satz.1);
  207.     MWSt_Rech.2 = MWSt_Satz.2 / (100 + MWSt_Satz.2);
  208. RETURN;
  209.  
  210. /* Unterprogramm zum Schreiben der Einstellungen (Prefs)                */
  211. UP_Prefs_schreiben:
  212.     IF OPEN(P_dat,Prefs_datei,'write') THEN
  213.         DO;
  214.             WRITELN(P_dat,MWSt_Satz.1);
  215.             WRITELN(P_dat,MWSt_Satz.2);
  216.             WRITELN(P_dat,Druckdatei);
  217.             WRITELN(P_dat,Druckport);
  218.             WRITELN(P_dat,D_XAbst);
  219.             WRITELN(P_dat,D_YAbst);
  220.             CLOSE(P_dat);
  221.         END;
  222. RETURN;
  223.  
  224. /* Unterprogramm zum Einlesen Druckerspezifischer Werte                */
  225. UP_Druckdaten_lesen:
  226.     IF OPEN(D_dat,Druckdatei,'read') THEN
  227.         DO;
  228.             D_Z_kl    = READLN(D_dat);
  229.             D_Z_gr    = READLN(D_dat);
  230.             D_Schr    = READLN(D_dat);
  231.             D_SStand    = READLN(D_dat);
  232.             D_SGross    = READLN(D_dat);
  233.             D_SKlein    = READLN(D_dat);
  234.             D_Br10    = READLN(D_dat);
  235.             D_Br12    = READLN(D_dat);
  236.             D_Br15    = READLN(D_dat);
  237.             D_PEin    = READLN(D_dat);
  238.             D_PAus    = READLN(D_dat);
  239.             D_UEin    = READLN(D_dat);
  240.             D_UAus    = READLN(D_dat);
  241.             D_KEin    = READLN(D_dat);
  242.             D_KAus    = READLN(D_dat);
  243.             D_FEin    = READLN(D_dat);
  244.             D_FAus    = READLN(D_dat);
  245.             D_ZNorm    = READLN(D_dat);
  246.             D_ZZAbst    = READLN(D_dat);
  247.             D_CSchw    = READLN(D_dat);
  248.             D_CMag    = READLN(D_dat);
  249.             D_CZyan    = READLN(D_dat);
  250.             D_CViol    = READLN(D_dat);
  251.             D_CGelb    = READLN(D_dat);
  252.             D_CRot    = READLN(D_dat);
  253.             D_CGruen    = READLN(D_dat);
  254.             D_Rueck    = READLN(D_dat);
  255.             D_Ende    = READLN(D_dat);
  256.             CLOSE(D_dat);
  257.         END;
  258. RETURN;
  259.  
  260. /* Unterprogramm zum Einlesen der Kundenliste (Kunden.dat)            */
  261. UP_Kund_lesen:
  262.     K_datei    = "Kunden.dat";
  263.     K_max        = 0;
  264.     IF OPEN(K_dat,K_datei,'read') THEN
  265.         DO;
  266.             FI_VorName    = READLN(K_dat);
  267.             FI_Name        = READLN(K_dat);
  268.             FI_Strasse    = READLN(K_dat);
  269.             FI_PLZ        = READLN(K_dat);
  270.             FI_ORT        = READLN(K_dat);
  271.             FI_Land        = READLN(K_dat);
  272.             FI_GebTag    = READLN(K_dat);
  273.             FI_Rabatt    = READLN(K_dat);
  274.             FI_Tel        = READLN(K_dat);
  275.             FI_Fax        = READLN(K_dat);
  276.             FI_Dfue        = READLN(K_dat);
  277.             FI_EMail1    = READLN(K_dat);
  278.             FI_EMail2    = READLN(K_dat);
  279.             FI_EMail3    = READLN(K_dat);
  280.             FI_Anrede    = READLN(K_dat);
  281.             FI_BAnr        = READLN(K_dat);
  282.             FI_Komm        = READLN(K_dat);
  283.             FI_BLZ        = READLN(K_dat);
  284.             FI_BankBez    = READLN(K_dat);
  285.             FI_BankKurz    = READLN(K_dat);
  286.             FI_Konto        = READLN(K_dat);
  287.             DO forever;
  288.                 K_max  = K_max + 1;
  289.                 i = right(("000000" || K_max),6);
  290.                 KD_VorName.i  = READLN(K_dat);
  291.                 IF EOF(K_dat) THEN LEAVE;
  292.                 KD_Name.i        = READLN(K_dat);
  293.                 KD_Strasse.i    = READLN(K_dat);
  294.                 KD_PLZ.i            = READLN(K_dat);
  295.                 KD_ORT.i            = READLN(K_dat);
  296.                 KD_Land.i        = READLN(K_dat);
  297.                 KD_GebTag.i        = READLN(K_dat);
  298.                 KD_Rabatt.i        = READLN(K_dat);
  299.                 KD_Tel.i            = READLN(K_dat);
  300.                 KD_Fax.i            = READLN(K_dat);
  301.                 KD_Dfue.i        = READLN(K_dat);
  302.                 KD_EMail1.i        = READLN(K_dat);
  303.                 KD_EMail2.i        = READLN(K_dat);
  304.                 KD_EMail3.i        = READLN(K_dat);
  305.                 KD_Anrede.i        = READLN(K_dat);
  306.                 KD_BAnr.i        = READLN(K_dat);
  307.                 KD_Komm.i        = READLN(K_dat);
  308.                 KD_BLZ.i            = READLN(K_dat);
  309.                 KD_BankBez.i    = READLN(K_dat);
  310.                 KD_BankKurz.i    = READLN(K_dat);
  311.                 KD_Konto.i        = READLN(K_dat);
  312.             END;
  313.             CLOSE(K_dat);
  314.         END;
  315.     ELSE
  316.         K_max  = 1;
  317.     CALL UP_K_max_init;
  318. RETURN;
  319.  
  320. UP_K_max_init:
  321.     i = right(("000000" || K_max),6);
  322.     K_max = i;
  323.     KD_VorName.i    = "";
  324.     KD_Name.i        = "";
  325.     KD_Strasse.i    = "";
  326.     KD_PLZ.i            = "";
  327.     KD_ORT.i            = "";
  328.     KD_Land.i        = "";
  329.     KD_GebTag.i        = "";
  330.     KD_Rabatt.i        = "";
  331.     KD_Tel.i            = "";
  332.     KD_Fax.i            = "";
  333.     KD_Dfue.i        = "";
  334.     KD_EMail1.i        = "";
  335.     KD_EMail2.i        = "";
  336.     KD_EMail3.i        = "";
  337.     KD_Anrede.i        = "";
  338.     KD_BAnr.i        = "";
  339.     KD_Komm.i        = "";
  340.     KD_BLZ.i            = "";
  341.     KD_BankBez.i    = "";
  342.     KD_BankKurz.i    = "";
  343.     KD_Konto.i        = "";
  344. RETURN;
  345.  
  346. /* Unterprogramm zum schreiben der Kundenliste (Kunden.dat)            */
  347. UP_Kund_schreiben:
  348.     IF OPEN(K_dat,K_datei,'write') THEN
  349.         DO;
  350.             WRITELN(K_dat,FI_VorName);
  351.             WRITELN(K_dat,FI_Name);
  352.             WRITELN(K_dat,FI_Strasse);
  353.             WRITELN(K_dat,FI_PLZ);
  354.             WRITELN(K_dat,FI_Ort);
  355.             WRITELN(K_dat,FI_Land);
  356.             WRITELN(K_dat,FI_GebTag);
  357.             WRITELN(K_dat,FI_Rabatt);
  358.             WRITELN(K_dat,FI_Tel);
  359.             WRITELN(K_dat,FI_Fax);
  360.             WRITELN(K_dat,FI_Dfue);
  361.             WRITELN(K_dat,FI_EMail1);
  362.             WRITELN(K_dat,FI_EMail2);
  363.             WRITELN(K_dat,FI_EMail3);
  364.             WRITELN(K_dat,FI_Anrede);
  365.             WRITELN(K_dat,FI_BAnr);
  366.             WRITELN(K_dat,FI_Komm);
  367.             WRITELN(K_dat,FI_BLZ);
  368.             WRITELN(K_dat,FI_BankBez);
  369.             WRITELN(K_dat,FI_BankKurz);
  370.             WRITELN(K_dat,FI_Konto);
  371.             DO k = 1 to (K_max - 1);
  372.                 i = right(("000000" || k),6);
  373.                 WRITELN(K_dat,KD_VorName.i);
  374.                 WRITELN(K_dat,KD_Name.i);
  375.                 WRITELN(K_dat,KD_Strasse.i);
  376.                 WRITELN(K_dat,KD_PLZ.i);
  377.                 WRITELN(K_dat,KD_Ort.i);
  378.                 WRITELN(K_dat,KD_Land.i);
  379.                 WRITELN(K_dat,KD_GebTag.i);
  380.                 WRITELN(K_dat,KD_Rabatt.i);
  381.                 WRITELN(K_dat,KD_Tel.i);
  382.                 WRITELN(K_dat,KD_Fax.i);
  383.                 WRITELN(K_dat,KD_Dfue.i);
  384.                 WRITELN(K_dat,KD_EMail1.i);
  385.                 WRITELN(K_dat,KD_EMail2.i);
  386.                 WRITELN(K_dat,KD_EMail3.i);
  387.                 WRITELN(K_dat,KD_Anrede.i);
  388.                 WRITELN(K_dat,KD_BAnr.i);
  389.                 WRITELN(K_dat,KD_Komm.i);
  390.                 WRITELN(K_dat,KD_BLZ.i);
  391.                 WRITELN(K_dat,KD_BankBez.i);
  392.                 WRITELN(K_dat,KD_BankKurz.i);
  393.                 WRITELN(K_dat,KD_Konto.i);
  394.             END;
  395.             CLOSE(K_dat);
  396.         END;
  397. RETURN;
  398.  
  399. /* Unterprogramm zum Einlesen der Artikelliste (Artikel.dat)        */
  400. UP_Artikel_lesen:
  401.     A_datei    = "Artikel.dat"
  402.     A_max        = 0;
  403.     IF OPEN(A_dat,A_datei,'read') THEN
  404.         DO forever;
  405.             A_max                = A_max + 1;
  406.             i                    = right(("000000" || A_max),6);
  407.             AR_ArtBez.i        = READLN(A_dat);
  408.             IF EOF(A_dat) THEN LEAVE;
  409.             AR_ArtPreis.i    = READLN(A_dat);
  410.             AR_ArtBuch.i    = READLN(A_dat);
  411.             AR_ArtMWST.i    = READLN(A_dat);
  412.         END;
  413.     ELSE
  414.         A_max  = 1;
  415.     CLOSE(A_dat);
  416.     CALL UP_A_max_init;
  417. RETURN;
  418.  
  419. UP_A_max_init:
  420.     i = right(("000000" || A_max),6);
  421.     A_max        = i;
  422.     AR_ArtBez.i        = "";
  423.     AR_ArtPreis.i    = "";
  424.     AR_ArtBuch.i    = "";
  425.     AR_ArtMWST.i    = "";
  426. Return;
  427.  
  428. /* Unterprogramm zum schreiben der Artikelliste (Artikel.dat)       */
  429. UP_Artikel_schreiben:
  430.     IF OPEN(A_dat,A_datei,'write') THEN
  431.         DO k = 1 to (A_max - 1);
  432.             i = right(("000000" || k),6);
  433.             WRITELN(A_dat,AR_ArtBez.i);
  434.             WRITELN(A_dat,AR_ArtPreis.i);
  435.             WRITELN(A_dat,AR_ArtBuch.i);
  436.             WRITELN(A_dat,AR_ArtMWSt.i);
  437.         END;
  438.     CLOSE(A_dat);
  439. RETURN;
  440.  
  441. /* Unterprogramm zum Einlesen der Rechnungsliste (Rechnung.dat)        */
  442. UP_Rechnung_lesen:
  443.     R_datei    = "Rechnung.dat"
  444.     R_max        = 0;
  445.     IF OPEN(R_dat,R_datei,'read') THEN
  446.         DO forever;
  447.             R_max                = R_max + 1;
  448.             i                    = right(("000000" || R_max),6);
  449.             RE_Kunde.i        = READLN(R_dat);
  450.             IF EOF(R_dat) THEN LEAVE;
  451.             RE_Datum.i        = READLN(R_dat);
  452.             DO j = 1 to 13;
  453.                 RE_Art.j.i    = READLN(R_dat);
  454.                 RE_Anz.j.i    = READLN(R_dat);
  455.             END;
  456.             RE_Mahnung.i    = READLN(R_dat);
  457.         END;
  458.     ELSE
  459.         R_max    = 1;
  460.     CLOSE(R_dat);
  461.     CALL UP_Rech_Max_init;
  462. RETURN;
  463.  
  464. UP_Rech_Max_init:
  465.     i = right(("000000" || R_max),6);
  466.     R_max    = i;
  467.     RE_Kunde.i        = "";
  468.     RE_Datum.i        = datum;
  469.     DO j = 1 to 13;
  470.         RE_Art.j.i    = "";
  471.         RE_Anz.j.i    = "";
  472.     END;
  473.     RE_Mahnung.i    = "";
  474. RETURN
  475.  
  476. /* Unterprogramm zum schreiben der Rechnungsliste (Rechnung.dat)        */
  477. UP_Rechnung_schreiben:
  478.     IF OPEN(R_dat,R_datei,'write') THEN
  479.         DO k = 1 to (R_max - 1);
  480.             i = right(("000000" || k),6);
  481.             WRITELN(R_dat,RE_Kunde.i);
  482.             WRITELN(R_dat,RE_Datum.i);
  483.             DO j = 1 to 13;
  484.                 WRITELN(R_dat,RE_Art.j.i);
  485.                 WRITELN(R_dat,RE_Anz.j.i);
  486.             END;
  487.             WRITELN(R_dat,RE_Mahnung.i);
  488.         END;
  489.     CLOSE(R_dat);
  490. RETURN;
  491.  
  492. DefineGads1:
  493.     scr        = LOCKPUBSCREEN("Workbench");
  494.     scrvinfo    = GETVISUALINFO(scr);
  495.     scrfont    = GETVALUE(scr,40,4,'p');
  496.     GPoint    = ALLOCVEC(4,MEMF_CLEAR);
  497.     conxgad    = CREATECONTEXT(GPoint);
  498.     PreGad     = conxgad;
  499.  
  500.     newgadx    = MAKENEWGADGET(scrvinfo,scrfont,Font_X,Font_Y,26*Font_X,1.5*Font_Y,"Adressverwaltung",PLACETEXT_IN,10,null());
  501.     PreGad    = CREATEGADGET(BUTTON_KIND,PreGad,newgadx,TAG_DONE,0);
  502.  
  503.     call SETNEWGADGET(newgadx,scrvinfo,scrfont,Font_X,3*Font_Y,26*Font_X,1.5*Font_Y,"Artikelverwaltung",PLACETEXT_IN,12,null());
  504.     PreGad    = CREATEGADGET(BUTTON_KIND,PreGad,newgadx,TAG_DONE,0);
  505.  
  506.     call SETNEWGADGET(newgadx,scrvinfo,scrfont,Font_X,5*Font_Y,26*Font_X,1.5*Font_Y,"Rechnungsverwaltung",PLACETEXT_IN,13,null());
  507.     PreGad    = CREATEGADGET(BUTTON_KIND,PreGad,newgadx,TAG_DONE,0);
  508.  
  509.     call SETNEWGADGET(newgadx,scrvinfo,scrfont,Font_X,7*Font_Y,26*Font_X,1.5*Font_Y,"Drucken",PLACETEXT_IN,14,null());
  510.     PreGad    = CREATEGADGET(BUTTON_KIND,PreGad,newgadx,TAG_DONE,0);
  511.  
  512.     call SETNEWGADGET(newgadx,scrvinfo,scrfont,Font_X,9*Font_Y,26*Font_X,1.5*Font_Y,"Prefs",PLACETEXT_IN,15,null());
  513.     PreGad    = CREATEGADGET(BUTTON_KIND,PreGad,newgadx,TAG_DONE,0);
  514.  
  515.     call SETNEWGADGET(newgadx,scrvinfo,scrfont,7*Font_X,14*Font_Y,15*Font_X,1.5*Font_Y,"Ende",PLACETEXT_IN,17,null());
  516.     PreGad    = CREATEGADGET(BUTTON_KIND,PreGad,newgadx,TAG_DONE,0);
  517. RETURN;
  518.  
  519. DefineGads2:
  520.     GPoint2    = ALLOCVEC(4,MEMF_CLEAR);
  521.     conxgad2    = CREATECONTEXT(GPoint2);
  522.     PreGad2    = conxgad2;
  523.  
  524.     newgadx2    = MAKENEWGADGET(scrvinfo,scrfont,Font_X,Font_Y,2*Font_X,1.5*Font_Y,"K",PLACETEXT_IN,10,null());
  525.     PreGad2    = CREATEGADGET(BUTTON_KIND,PreGad2,newgadx2,TAG_DONE,0);
  526.  
  527.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,14*Font_X,Font_Y,10*Font_X,1.5*Font_Y,"Kundennr:",PLACETEXT_LEFT,11,null());
  528.     PreGad2    = CREATEGADGET(STRING_KIND,PreGad2,newgadx2,GTST_MAXCHARS,6,TAG_DONE,0);
  529.  
  530.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,35*Font_X,Font_Y,18*Font_X,1.5*Font_Y,"Vorname:",PLACETEXT_LEFT,12,null());
  531.     PreGad2    = CREATEGADGET(STRING_KIND,PreGad2,newgadx2,GTST_MAXCHARS,25,TAG_DONE,0);
  532.  
  533.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,60*Font_X,Font_Y,18*Font_X,1.5*Font_Y,"Name:",PLACETEXT_LEFT,13,null());
  534.     PreGad2    = CREATEGADGET(STRING_KIND,PreGad2,newgadx2,GTST_MAXCHARS,25,TAG_DONE,0);
  535.  
  536.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,7*Font_X,3*Font_Y,7*Font_X,1.5*Font_Y,"PLZ:",PLACETEXT_LEFT,14,null());
  537.     PreGad2    = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0);
  538.  
  539.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,21*Font_X,3*Font_Y,24*Font_X,1.5*Font_Y,"Ort:",PLACETEXT_LEFT,15,null());
  540.     PreGad2    = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0);
  541.  
  542.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,54*Font_X,3*Font_Y,24*Font_X,1.5*Font_Y,"Straße:",PLACETEXT_LEFT,16,null());
  543.     PreGad2    = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0);
  544.  
  545.     DO I = 1 TO I_max;
  546.         CALL SETNEWGADGET(newgadx2,scrvinfo,scrfont,1.5*Font_X,(1.7*i+4)*Font_Y,2*Font_X,1.5*Font_Y,"A",PLACETEXT_IN,10+(10*i),null());
  547.         PreGad2    = CREATEGADGET(BUTTON_KIND,PreGad2,newgadx2,TAG_DONE,0);
  548.  
  549.         call SETNEWGADGET(newgadx2,scrvinfo,scrfont,5*Font_X,(1.7*i+4)*Font_Y,9*Font_X,1.5*Font_Y,"",PLACETEXT_LEFT,10+(10*i+1),null());
  550.         PreGad2    = CREATEGADGET(STRING_KIND,PreGad2,newgadx2,GTST_MAXCHARS,6,TAG_DONE,0);
  551.  
  552.         call SETNEWGADGET(newgadx2,scrvinfo,scrfont,14.5*Font_X,(1.7*i+4)*Font_Y,7.4*Font_X,1.5*Font_Y,"",PLACETEXT_LEFT,10+(10*i+2),null());
  553.         PreGad2    = CREATEGADGET(STRING_KIND,PreGad2,newgadx2,GTST_MAXCHARS,10,TAG_DONE,0);
  554.  
  555.         call SETNEWGADGET(newgadx2,scrvinfo,scrfont,22*Font_X,(1.7*i+4)*Font_Y,31.5*Font_X,1.5*Font_Y,"",PLACETEXT_LEFT,10+(10*i+3),null());
  556.         PreGad2    = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0);
  557.  
  558.         call SETNEWGADGET(newgadx2,scrvinfo,scrfont,54*Font_X,(1.7*i+4)*Font_Y,11*Font_X,1.5*Font_Y,"",PLACETEXT_LEFT,10+(10*i+4),null());
  559.         PreGad2    = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0);
  560.  
  561.         call SETNEWGADGET(newgadx2,scrvinfo,scrfont,66*Font_X,(1.7*i+4)*Font_Y,11*Font_X,1.5*Font_Y,"",PLACETEXT_LEFT,10+(10*i+5),null());
  562.         PreGad2    = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0);
  563.     END;
  564.  
  565.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,8.5*Font_X,(1.7*I_max+6)*Font_Y,11*Font_X,1.5*Font_Y,"Datum:",PLACETEXT_LEFT,150,null());
  566.     PreGad2    = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0);
  567.  
  568.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,28.75*Font_X,(1.7*I_max+6)*Font_Y,10*Font_X,1.5*Font_Y,"Rabatt:",PLACETEXT_LEFT,151,null());
  569.     PreGad2    = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0);
  570.  
  571.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,45.75*Font_X,(1.7*I_max+6)*Font_Y,10*Font_X,1.5*Font_Y,"MWSt:",PLACETEXT_LEFT,152,null());
  572.     PreGad2    = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0);
  573.  
  574.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,66*Font_X,(1.7*I_max+6)*Font_Y,11*Font_X,1.5*Font_Y,"Endsumme:",PLACETEXT_LEFT,153,null());
  575.     PreGad2    = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0);
  576.  
  577.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,12*Font_X,(1.7*I_max+9)*Font_Y,10*Font_X,1.5*Font_Y,"Rechnung:",PLACETEXT_LEFT,160,null());
  578.     PreGad2    = CREATEGADGET(STRING_KIND,PreGad2,newgadx2,GTST_MAXCHARS,6,TAG_DONE,0);
  579.  
  580.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,33*Font_X,(1.7*I_max+9)*Font_Y,8*Font_X,1.5*Font_Y,">",PLACETEXT_IN,161,null());
  581.     PreGad2    = CREATEGADGET(BUTTON_KIND,PreGad2,newgadx2,TAG_DONE,0);
  582.  
  583.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,24*Font_X,(1.7*I_max+9)*Font_Y,8*Font_X,1.5*Font_Y,"<",PLACETEXT_IN,162,null());
  584.     PreGad2    = CREATEGADGET(BUTTON_KIND,PreGad2,newgadx2,TAG_DONE,0);
  585.  
  586.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,42.5*Font_X,(1.7*I_max+9)*Font_Y,8*Font_X,1.5*Font_Y,"Ende",PLACETEXT_IN,163,null());
  587.     PreGad2    = CREATEGADGET(BUTTON_KIND,PreGad2,newgadx2,TAG_DONE,0);
  588.  
  589.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,52*Font_X,(1.7*I_max+9)*Font_Y,8*Font_X,1.5*Font_Y,"Drucken",PLACETEXT_IN,164,null());
  590.     PreGad2    = CREATEGADGET(BUTTON_KIND,PreGad2,newgadx2,TAG_DONE,0);
  591.  
  592.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,61*Font_X,(1.7*I_max+9)*Font_Y,16*Font_X,1.5*Font_Y,"Verwerfen",PLACETEXT_IN,165,null());
  593.     PreGad2    = CREATEGADGET(BUTTON_KIND,PreGad2,newgadx2,TAG_DONE,0);
  594. RETURN;
  595.  
  596. DefineGads3:
  597.     GPoint3    = ALLOCVEC(4,MEMF_CLEAR);
  598.     conxgad3    = CREATECONTEXT(GPoint3);
  599.     PreGad3    = conxgad3;
  600.     mylabels    = make_labels();
  601.  
  602.     newgadx3    = MAKENEWGADGET(scrvinfo,scrfont,1*Font_X,2*Font_Y,12*Font_X,1.5*Font_Y,"Rechnung:",PLACETEXT_ABOVE,10,null());
  603.     PreGad3    = CREATEGADGET(STRING_KIND,PreGad3,newgadx3,GTST_MAXCHARS,6,TAG_DONE,0);
  604.  
  605.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,1*Font_X,6*Font_Y,12*Font_X,1.5*Font_Y,"Kunde:",PLACETEXT_ABOVE,11,null());
  606.     PreGad3    = CREATEGADGET(STRING_KIND,PreGad3,newgadx3,GTST_MAXCHARS,6,TAG_DONE,0);
  607.  
  608.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,1*Font_X,9.5*Font_Y,12*Font_X,1.5*Font_Y,"Drucken ->",PLACETEXT_ABOVE,12,null());
  609.     PreGad3    = CREATEGADGET(CYCLE_KIND,PreGad3,newgadx3,GTCY_LABELS,mylabels,GTCY_Active,0,TAG_DONE,0);
  610.  
  611.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,1*Font_X,12*Font_Y,12*Font_X,1.5*Font_Y,"Prefs",PLACETEXT_IN,13,null());
  612.     PreGad3    = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0);
  613.  
  614.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,1*Font_X,14.5*Font_Y,12*Font_X,1.5*Font_Y,"Verz.",PLACETEXT_IN,14,null());
  615.     PreGad3    = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0);
  616.  
  617.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,15.5*Font_X,Font_Y,12.5*Font_X,1.5*Font_Y,"Rechnung",PLACETEXT_IN,15,null());
  618.     PreGad3    = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0);
  619.  
  620.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,15.5*Font_X,3*Font_Y,12.5*Font_X,1.5*Font_Y,"Paketkarte",PLACETEXT_IN,16,null());
  621.     PreGad3    = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0);
  622.  
  623.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,15.5*Font_X,5*Font_Y,12.5*Font_X,1.5*Font_Y,"Zahlschein",PLACETEXT_IN,17,null());
  624.     PreGad3    = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0);
  625.  
  626.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,15.5*Font_X,7*Font_Y,12.5*Font_X,1.5*Font_Y,"Mahnung",PLACETEXT_IN,18,null());
  627.     PreGad3    = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0);
  628.  
  629.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,15.5*Font_X,9*Font_Y,12.5*Font_X,1.5*Font_Y,"Etikett",PLACETEXT_IN,19,null());
  630.     PreGad3    = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0);
  631.  
  632.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,15.5*Font_X,11*Font_Y,12.5*Font_X,1.5*Font_Y,"Umschlag",PLACETEXT_IN,20,null());
  633.     PreGad3    = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0);
  634.  
  635.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,15.5*Font_X,13*Font_Y,12.5*Font_X,1.5*Font_Y,"Art. Liste",PLACETEXT_IN,21,null());
  636.     PreGad3    = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0);
  637.  
  638.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,30*Font_X,Font_Y,12.5*Font_X,1.5*Font_Y,"Adressliste",PLACETEXT_IN,22,null());
  639.     PreGad3    = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0);
  640.  
  641.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,30*Font_X,3*Font_Y,12.5*Font_X,1.5*Font_Y,"Umsatzliste",PLACETEXT_IN,23,null());
  642.     PreGad3    = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0);
  643. RETURN;
  644.  
  645. make_labels:
  646.     ltxt.1    = "Drucker";
  647.     ltxt.2    = "Datei";
  648.     mlabels    = MAKEPOINTER(0,0,12,MEMF_CLEAR);
  649.     DO x = 1 to 2;
  650.         lbuf = MAKEPOINTER(mlabels,0,length(ltxt.x)+2,MEMF_CLEAR);
  651.         CALL export(lbuf,ltxt.x);
  652.         CALL SETVALUE(mlabels,(x-1)*4,4,'p',lbuf);
  653.     END;
  654. RETURN mlabels;
  655.  
  656. DefineGads4:
  657.     GPoint4    = ALLOCVEC(4,MEMF_CLEAR);
  658.     conxgad4    = CREATECONTEXT(GPoint4);
  659.     PreGad4    = conxgad4;
  660.     Kundlabels    = make_labels2();
  661.  
  662.     newgadx4    = MAKENEWGADGET(scrvinfo,scrfont,12*Font_X,1*Font_Y,26*Font_X,1.5*Font_Y,"Vorname  :",PLACETEXT_LEFT,10,null());
  663.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,25,TAG_DONE,0);
  664.  
  665.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,1*Font_Y,26*Font_X,1.5*Font_Y,"Name     :",PLACETEXT_LEFT,11,null());
  666.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,25,TAG_DONE,0);
  667.  
  668.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,3*Font_Y,26*Font_X,1.5*Font_Y,"Straße   :",PLACETEXT_LEFT,12,null());
  669.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,25,TAG_DONE,0);
  670.  
  671.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,3*Font_Y,8*Font_X,1.5*Font_Y,"PLZ      :",PLACETEXT_LEFT,13,null());
  672.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,5,TAG_DONE,0);
  673.  
  674.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,5*Font_Y,26*Font_X,1.5*Font_Y,"Ort      :",PLACETEXT_LEFT,14,null());
  675.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,25,TAG_DONE,0);
  676.  
  677.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,5*Font_Y,26*Font_X,1.5*Font_Y,"Land     :",PLACETEXT_LEFT,15,null());
  678.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,20,TAG_DONE,0);
  679.  
  680.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,7*Font_Y,12*Font_X,1.5*Font_Y,"Geburtst.:",PLACETEXT_LEFT,16,null());
  681.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,10,TAG_DONE,0);
  682.  
  683.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,7*Font_Y,20*Font_X,1.5*Font_Y,"Telefon  :",PLACETEXT_LEFT,17,null());
  684.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,15,TAG_DONE,0);
  685.  
  686.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,9*Font_Y,20*Font_X,1.5*Font_Y,"Fax      :",PLACETEXT_LEFT,18,null());
  687.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,15,TAG_DONE,0);
  688.  
  689.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,9*Font_Y,20*Font_X,1.5*Font_Y,"DFÜ      :",PLACETEXT_LEFT,19,null());
  690.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,15,TAG_DONE,0);
  691.  
  692.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,11*Font_Y,20*Font_X,1.5*Font_Y,"EMail1   :",PLACETEXT_LEFT,20,null());
  693.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,15,TAG_DONE,0);
  694.  
  695.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,11*Font_Y,20*Font_X,1.5*Font_Y,"EMail2   :",PLACETEXT_LEFT,21,null());
  696.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,15,TAG_DONE,0);
  697.  
  698.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,13*Font_Y,20*Font_X,1.5*Font_Y,"EMail3   :",PLACETEXT_LEFT,22,null());
  699.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,15,TAG_DONE,0);
  700.  
  701.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,13*Font_Y,26*Font_X,1.5*Font_Y,"Anrede   :",PLACETEXT_LEFT,23,null());
  702.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,25,TAG_DONE,0);
  703.  
  704.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,15*Font_Y,65*Font_X,1.5*Font_Y,"BriefAn  :",PLACETEXT_LEFT,24,null());
  705.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,40,TAG_DONE,0);
  706.  
  707.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,17*Font_Y,65*Font_X,1.5*Font_Y,"Kommentar:",PLACETEXT_LEFT,25,null());
  708.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,80,TAG_DONE,0);
  709.  
  710.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,19*Font_Y,65*Font_X,1.5*Font_Y,"Bank     :",PLACETEXT_LEFT,26,null());
  711.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,40,TAG_DONE,0);
  712.  
  713.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,21*Font_Y,20*Font_X,1.5*Font_Y,"BLZ      :",PLACETEXT_LEFT,27,null());
  714.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,15,TAG_DONE,0);
  715.  
  716.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,21*Font_Y,20*Font_X,1.5*Font_Y,"Konto    :",PLACETEXT_LEFT,28,null());
  717.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,15,TAG_DONE,0);
  718.  
  719.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,23*Font_Y,20*Font_X,1.5*Font_Y,"Bankkurz :",PLACETEXT_LEFT,29,null());
  720.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,15,TAG_DONE,0);
  721.  
  722.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,23*Font_Y,5*Font_X,1.5*Font_Y,"Rabatt   :",PLACETEXT_LEFT,30,null());
  723.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,2,TAG_DONE,0);
  724.  
  725.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,13.5*Font_X,26*Font_Y,16*Font_X,1.5*Font_Y,"Bearbeiten:",PLACETEXT_LEFT,40,null());
  726.     PreGad4    = CREATEGADGET(CYCLE_KIND,PreGad4,newgadx4,GTCY_LABELS,Kundlabels,TAG_DONE,0);
  727.  
  728.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,40*Font_X,26*Font_Y,32*Font_X,1.5*Font_Y,"Suche  :",PLACETEXT_LEFT,41,null());
  729.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,30,TAG_DONE,0);
  730.  
  731.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,73*Font_X,26*Font_Y,4*Font_X,1.5*Font_Y,"Cal",PLACETEXT_IN,42,null());
  732.     PreGad4    = CREATEGADGET(BUTTON_KIND,PreGad4,newgadx4,TAG_DONE,0);
  733.  
  734.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,15*Font_X,28*Font_Y,9*Font_X,1.5*Font_Y,"Kund/Lief   :",PLACETEXT_LEFT,43,null());
  735.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,6,TAG_DONE,0);
  736.  
  737.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,35*Font_X,28*Font_Y,9*Font_X,1.5*Font_Y,">",PLACETEXT_IN,44,null());
  738.     PreGad4    = CREATEGADGET(BUTTON_KIND,PreGad4,newgadx4,TAG_DONE,0);
  739.  
  740.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,25*Font_X,28*Font_Y,9*Font_X,1.5*Font_Y,"<",PLACETEXT_IN,45,null());
  741.     PreGad4    = CREATEGADGET(BUTTON_KIND,PreGad4,newgadx4,TAG_DONE,0);
  742.  
  743.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,45*Font_X,28*Font_Y,9*Font_X,1.5*Font_Y,"Ende",PLACETEXT_IN,46,null());
  744.     PreGad4    = CREATEGADGET(BUTTON_KIND,PreGad4,newgadx4,TAG_DONE,0);
  745.  
  746.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,55*Font_X,28*Font_Y,9*Font_X,1.5*Font_Y,"Drucken",PLACETEXT_IN,47,null());
  747.     PreGad4    = CREATEGADGET(BUTTON_KIND,PreGad4,newgadx4,TAG_DONE,0);
  748.  
  749.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,65*Font_X,28*Font_Y,12*Font_X,1.5*Font_Y,"Verwerfen",PLACETEXT_IN,48,null());
  750.     PreGad4    = CREATEGADGET(BUTTON_KIND,PreGad4,newgadx4,TAG_DONE,0);
  751. RETURN;
  752.  
  753. make_labels2:
  754.     ltxt2.1    = "Kunden";
  755.     ltxt2.2    = "Firma";
  756.     mlabels2    = MAKEPOINTER(0,0,12,MEMF_CLEAR);
  757.     DO x = 1 to 2;
  758.         lbuf2    = MAKEPOINTER(mlabels2,0,length(ltxt2.x)+2,MEMF_CLEAR);
  759.         CALL export(lbuf2,ltxt2.x);
  760.         CALL SETVALUE(mlabels2,(x-1)*4,4,'p',lbuf2);
  761.     END;
  762. RETURN mlabels2;
  763.  
  764. DefineGads5:
  765.     GPoint5    = ALLOCVEC(4,MEMF_CLEAR);
  766.     conxgad5    = CREATECONTEXT(GPoint5);
  767.     PreGad5    = conxgad5;
  768.  
  769.     newgadx5    = MAKENEWGADGET(scrvinfo,scrfont,14*Font_X,Font_Y,62*Font_X,1.5*Font_Y,"Bezeichnung:",PLACETEXT_LEFT,10,null());
  770.     PreGad5    = CREATEGADGET(STRING_KIND,PreGad5,newgadx5,GTST_MAXCHARS,30,TAG_DONE,0);
  771.  
  772.     call SETNEWGADGET(newgadx5,scrvinfo,scrfont,14*Font_X,3*Font_Y,22*Font_X,1.5*Font_Y,"Preis      :",PLACETEXT_LEFT,11,null());
  773.     PreGad5    = CREATEGADGET(STRING_KIND,PreGad5,newgadx5,GTST_MAXCHARS,10,TAG_DONE,0);
  774.  
  775.     call SETNEWGADGET(newgadx5,scrvinfo,scrfont,59*Font_X,3*Font_Y,17*Font_X,1.5*Font_Y,"Buchkonto  :",PLACETEXT_LEFT,12,null());
  776.     PreGad5    = CREATEGADGET(STRING_KIND,PreGad5,newgadx5,GTST_MAXCHARS,10,TAG_DONE,0);
  777.  
  778.     call SETNEWGADGET(newgadx5,scrvinfo,scrfont,14*Font_X,5*Font_Y,4*Font_X,1.5*Font_Y,"MWSt Kennz.:",PLACETEXT_LEFT,13,null());
  779.     PreGad5    = CREATEGADGET(STRING_KIND,PreGad5,newgadx5,GTST_MAXCHARS,5,TAG_DONE,0);
  780.  
  781.     call SETNEWGADGET(newgadx5,scrvinfo,scrfont,14*Font_X,8*Font_Y,37*Font_X,1.5*Font_Y,"Suche     :",PLACETEXT_LEFT,41,null());
  782.     PreGad5    = CREATEGADGET(STRING_KIND,PreGad5,newgadx5,GTST_MAXCHARS,30,TAG_DONE,0);
  783.  
  784.     call SETNEWGADGET(newgadx5,scrvinfo,scrfont,14*Font_X,10*Font_Y,9*Font_X,1.5*Font_Y,"Artikel   :",PLACETEXT_LEFT,43,null());
  785.     PreGad5    = CREATEGADGET(STRING_KIND,PreGad5,newgadx5,GTST_MAXCHARS,6,u,TAG_DONE,0);
  786.  
  787.     call SETNEWGADGET(newgadx5,scrvinfo,scrfont,34*Font_X,10*Font_Y,9*Font_X,1.5*Font_Y,">",PLACETEXT_IN,44,null());
  788.     PreGad5    = CREATEGADGET(BUTTON_KIND,PreGad5,newgadx5,TAG_DONE,0);
  789.  
  790.     call SETNEWGADGET(newgadx5,scrvinfo,scrfont,24*Font_X,10*Font_Y,9*Font_X,1.5*Font_Y,"<",PLACETEXT_IN,45,null());
  791.     PreGad5    = CREATEGADGET(BUTTON_KIND,PreGad5,newgadx5,TAG_DONE,0);
  792.  
  793.     call SETNEWGADGET(newgadx5,scrvinfo,scrfont,44*Font_X,10*Font_Y,9*Font_X,1.5*Font_Y,"Ende",PLACETEXT_IN,46,null());
  794.     PreGad5    = CREATEGADGET(BUTTON_KIND,PreGad5,newgadx5,TAG_DONE,0);
  795.  
  796.     call SETNEWGADGET(newgadx5,scrvinfo,scrfont,54*Font_X,10*Font_Y,9*Font_X,1.5*Font_Y,"Drucken",PLACETEXT_IN,47,null());
  797.     PreGad5    = CREATEGADGET(BUTTON_KIND,PreGad5,newgadx5,TAG_DONE,0);
  798.  
  799.     call SETNEWGADGET(newgadx5,scrvinfo,scrfont,64*Font_X,10*Font_Y,14*Font_X,1.5*Font_Y,"Verwerfen",PLACETEXT_IN,48,null());
  800.     PreGad5    = CREATEGADGET(BUTTON_KIND,PreGad5,newgadx5,TAG_DONE,0);
  801. RETURN;
  802.  
  803. DefineGads6:
  804.     GPoint6    = ALLOCVEC(4,MEMF_CLEAR);
  805.     conxgad6    = CREATECONTEXT(GPoint6);
  806.     PreGad6    = conxgad6;
  807.     mylabels    = make_labels();
  808.  
  809.     newgadx6    = MAKENEWGADGET(scrvinfo,scrfont,9*Font_X,Font_Y,12*Font_X,1.5*Font_Y,"MWSt.1:",PLACETEXT_LEFT,10,null());
  810.     PreGad6    = CREATEGADGET(STRING_KIND,PreGad6,newgadx6,GTST_MAXCHARS,8,GTST_STRING,MWSt_Satz.1,TAG_DONE,0);
  811.  
  812.     call SETNEWGADGET(newgadx6,scrvinfo,scrfont,9*Font_X,3*Font_Y,12*Font_X,1.5*Font_Y,"MWSt.2:",PLACETEXT_LEFT,11,null());
  813.     PreGad6    = CREATEGADGET(STRING_KIND,PreGad6,newgadx6,GTST_MAXCHARS,8,GTST_STRING,MWSt_Satz.2,TAG_DONE,0);
  814.  
  815.     call SETNEWGADGET(newgadx6,scrvinfo,scrfont,1*Font_X,7*Font_Y,6*Font_X,1.5*Font_Y,"Wähle",PLACETEXT_IN,12,null());
  816.     PreGad6    = CREATEGADGET(BUTTON_KIND,PreGad6,newgadx6,TAG_DONE,0);
  817.  
  818.     call SETNEWGADGET(newgadx6,scrvinfo,scrfont,7.5*Font_X,7*Font_Y,13.5*Font_X,1.5*Font_Y,"",PLACETEXT_LEFT,13,null());
  819.     PreGad6    = CREATEGADGET(TEXT_KIND,PreGad6,newgadx6,GTTX_BORDER,1,TAG_DONE,0);
  820.  
  821.     call SETNEWGADGET(newgadx6,scrvinfo,scrfont,9*Font_X,9*Font_Y,12*Font_X,1.5*Font_Y,"Port:  ",PLACETEXT_LEFT,14,null());
  822.     PreGad6    = CREATEGADGET(STRING_KIND,PreGad6,newgadx6,GTST_MAXCHARS,8,GTST_STRING,Druckport,TAG_DONE,0);
  823.  
  824.     call SETNEWGADGET(newgadx6,scrvinfo,scrfont,9*Font_X,11*Font_Y,12*Font_X,1.5*Font_Y,"Rand_X:",PLACETEXT_LEFT,15,null());
  825.     PreGad6    = CREATEGADGET(STRING_KIND,PreGad6,newgadx6,GTST_MAXCHARS,8,GTST_STRING,D_XAbst,TAG_DONE,0);
  826.  
  827.     call SETNEWGADGET(newgadx6,scrvinfo,scrfont,9*Font_X,13*Font_Y,12*Font_X,1.5*Font_Y,"Rand_Y:",PLACETEXT_LEFT,16,null());
  828.     PreGad6    = CREATEGADGET(STRING_KIND,PreGad6,newgadx6,GTST_MAXCHARS,8,GTST_STRING,D_YAbst,TAG_DONE,0);
  829.  
  830.     call SETNEWGADGET(newgadx6,scrvinfo,scrfont,5*Font_X,15*Font_Y,12*Font_X,1.5*Font_Y,"Ende",PLACETEXT_IN,17,null());
  831.     PreGad6    = CREATEGADGET(BUTTON_KIND,PreGad6,newgadx6,TAG_DONE,0);
  832. RETURN;
  833.  
  834. UP_Adressen:
  835.     IF DefGads4 = 0 THEN
  836.         DO;
  837.             call DefineGads4;
  838.             DefGads4 = 1;
  839.         END;
  840.     w4        = OPENWINDOW(portname,(Screen_X-Win_X4)/2,(Screen_Y-Win_Y4)/2,Win_X4,Win_Y4,0,1,winidcmp,winflags,wintitle4,scr,0,null(),null(),conxgad4);
  841.     rpw4    = GETWINDOWRASTPORT(w4);
  842.     CALL DRAWBEVELBOX(rpw4,0.25*Font_X,0.5*Font_Y,78.5*Font_X,24.5*Font_Y,scrvinfo,TAG_DONE,0);
  843.     CALL DRAWBEVELBOX(rpw4,0.25*Font_X,25.5*Font_Y,78.5*Font_X,4.5*Font_Y,scrvinfo,TAG_DONE,0);
  844.     call GT_REFRESHWINDOW(w4,null());
  845.     ZW_Suchen    = "";
  846.     IF ZW_KundenNr > K_max | ZW_KundenNr < 1 THEN
  847.         ZW_KundenNr = K_max;
  848.     IF Druckart    = ltxt2.2 THEN
  849.         CALL UP_Firma_alles;
  850.     ELSE
  851.         DO;
  852.             Druckart        = ltxt2.1;
  853.             CALL UP_Kunden_alles;
  854.         END;
  855.     CALL UP_ReErst_fuellen;
  856.     extime4    = 0;
  857.     apen        = 1;
  858.     DO WHILE extime4 = 0;
  859.         x    = waitpkt(portname);
  860.         DO FOREVER;
  861.             msg4        = getpkt(portname);
  862.             IF msg4    = '0000 0000'x THEN LEAVE;
  863.             msgclass4= getarg(msg4,0);
  864.             msgcode4    = getarg(msg4,1);
  865.             msgid4    = getarg(msg4,9);
  866.             x            = reply(msg4,0);
  867.             x            =Auswertung4();
  868.         END;
  869.     END;
  870.     CALL CLOSEWINDOW(w4);
  871. RETURN;
  872.  
  873. UP_Artikel:
  874.     IF DefGads5 = 0 THEN
  875.         DO;
  876.             call DefineGads5;
  877.             DefGads5 = 1;
  878.         END;
  879.     w5        = OPENWINDOW(portname,(Screen_X-Win_X5)/2,(Screen_Y-Win_Y5)/2,Win_X5,Win_Y5,0,1,winidcmp,winflags,wintitle5,scr,0,null(),null(),conxgad5);
  880.     rpw5    = GETWINDOWRASTPORT(w5);
  881.     CALL DRAWBEVELBOX(rpw5,0.25*Font_X,0.5*Font_Y,78.5*Font_X,6.5*Font_Y,scrvinfo,TAG_DONE,0);
  882.     CALL DRAWBEVELBOX(rpw5,0.25*Font_X,7.5*Font_Y,78.5*Font_X,4.5*Font_Y,scrvinfo,TAG_DONE,0);
  883.     CALL GT_REFRESHWINDOW(w5,null());
  884.     ZW_Suchen = "";
  885.     IF ZW_ArtikelNr > A_max | ZW_ArtikelNr < 1 THEN
  886.         ZW_ArtikelNr = A_max;
  887.     CALL UP_Artikel_alles;
  888.     CALL UP_ArtErst_fuellen;
  889.     extime5    = 0;
  890.     apen        = 1;
  891.     DO WHILE extime5 = 0;
  892.         x    = waitpkt(portname);
  893.         DO FOREVER;
  894.             msg5        = getpkt(portname);
  895.             IF msg5    = '0000 0000'x THEN LEAVE;
  896.             msgclass5= getarg(msg5,0);
  897.             msgcode5    = getarg(msg5,1);
  898.             msgid5    = getarg(msg5,9);
  899.             x            = reply(msg5,0);
  900.             x            = Auswertung5();
  901.         END;
  902.     END;
  903.     CALL CLOSEWINDOW(w5);
  904. RETURN;
  905.  
  906. UP_Rechnung:
  907.     IF DefGads2 = 0 THEN
  908.         DO;
  909.             call DefineGads2;
  910.             DefGads2 = 1;
  911.         END;
  912.     w2        = OPENWINDOW(portname,(Screen_X-Win_X2)/2,(Screen_Y-Win_Y2)/2,Win_X2,Win_Y2,0,1,winidcmp,winflags,wintitle2,scr,0,null(),null(),conxgad2);
  913.     rpw2    = GETWINDOWRASTPORT(w2);
  914.     CALL DRAWBEVELBOX(rpw2,0.25*Font_X,0.5*Font_Y,78.5*Font_X,4.5*Font_Y,scrvinfo,TAG_DONE,0);
  915.     CALL DRAWBEVELBOX(rpw2,0.25*Font_X,5.25*Font_Y,78.5*Font_X,((1.7*I_Max)+2.75)*Font_Y,scrvinfo,TAG_DONE,0);
  916.     CALL DRAWBEVELBOX(rpw2,0.25*Font_X,((1.7*I_Max)+8.5)*Font_Y,78.5*Font_X,2.5*Font_Y,scrvinfo,TAG_DONE,0);
  917.     call GT_REFRESHWINDOW(w2,null());
  918.     IF UEB_RechNr > R_max | UEB_RechNr < 1 THEN
  919.         UEB_RechNr = R_max;
  920.     CALL UP_Rechnung_fuellen;
  921.     extime2    = 0;
  922.     apen        = 1;
  923.     DO WHILE extime2 = 0;
  924.         x        = waitpkt(portname);
  925.         DO FOREVER;
  926.             msg2        = getpkt(portname);
  927.             IF msg2    = '0000 0000'x THEN LEAVE;
  928.             msgclass2= getarg(msg2,0);
  929.             msgcode2    = getarg(msg2,1);
  930.             msgid2    = getarg(msg2,9);
  931.             x            = reply(msg2,0);
  932.             x            = Auswertung2();
  933.         END;
  934.     END;
  935.     CALL CLOSEWINDOW(w2);
  936. RETURN;
  937.  
  938. UP_Drucken:
  939.     IF DefGads3 = 0 THEN
  940.         DO;
  941.             call DefineGads3;
  942.             DefGads3 = 1;
  943.         END;
  944.     w3        = OPENWINDOW(portname,(Screen_X-Win_X3)/2,(Screen_Y-Win_Y3)/2,Win_X3,Win_Y3,0,1,winidcmp,winflags,wintitle3,scr,0,null(),null(),conxgad3);
  945.     rpw3    = GETWINDOWRASTPORT(w3);
  946.     CALL DRAWBEVELBOX(rpw3,14.5*Font_X,0.5*Font_Y,29*Font_X,15.5*Font_Y,scrvinfo,TAG_DONE,0);
  947.     call GT_REFRESHWINDOW(w3,null());
  948.     extime3    = 0;
  949.     apen    = 1;
  950.     IF UEB_RechNr > R_max | UEB_RechNr < 1 THEN
  951.         UEB_RechNr = "000001";
  952.     UEB_RechNr = right("000000" || UEB_RechNr,6);
  953.     ZW_KundenNr = RE_Kunde.UEB_RechNr;
  954.     DO j = 1 to I_max;
  955.         ZW_Art_Nr.j = RE_Art.j.UEB_RechNr
  956.         IF ZW_Art_Nr.j > "" THEN
  957.             DO;
  958.                 x = ZW_Art_Nr.j;
  959.                 ZW_Bez.j            = AR_ArtBez.x;
  960.                 ZW_EPreis.j        = AR_ArtPreis.x;
  961.                 ZW_Art_Anz.j    = RE_Anz.j.UEB_RechNr;
  962.             END;
  963.         ELSE
  964.             DO;
  965.                 ZW_Bez.j            = "";
  966.                 ZW_EPreis.j        = "";
  967.                 ZW_Art_Anz.j    = "";
  968.             END;
  969.     END;
  970.     ZW_Datum = RE_Datum.UEB_RechNr;
  971.     CALL SETSTRGADID(w3,10,UEB_RechNr,null());
  972.     CALL SETSTRGADID(w3,11,ZW_KundenNr,null());
  973.     REFRESHGLIST(conxgad3,w3,null(),-1);
  974.     Druckverz = "ram:";
  975.     IF Druckart ~= ltxt.2 THEN
  976.         Druckart    = ltxt.1
  977.     DO WHILE extime3 = 0;
  978.         x    = waitpkt(portname);
  979.         DO FOREVER;
  980.             msg3        = getpkt(portname);
  981.             IF msg3    = '0000 0000'x THEN LEAVE;
  982.             msgclass3= getarg(msg3,0);
  983.             msgcode3    = getarg(msg3,1);
  984.             msgid3    = getarg(msg3,9);
  985.             x            = reply(msg3,0);
  986.             x            = Auswertung3();
  987.         END;
  988.     END;
  989.     CALL CLOSEWINDOW(w3);
  990. RETURN;
  991.  
  992. UP_Prefs:
  993.     IF DefGads6 = 0 THEN
  994.         DO;
  995.             call DefineGads6;
  996.             DefGads6 = 2;
  997.         END;
  998.     w6        = OPENWINDOW(portname,(Screen_X-Win_X6)/2,(Screen_Y-Win_Y6)/2,Win_X6,Win_Y6,0,1,winidcmp,winflags,wintitle6,scr,0,null(),null(),conxgad6);
  999.     rpw6    = GETWINDOWRASTPORT(w6);
  1000.  
  1001.     CALL pitext(rpw6,Font_X,5.5*Font_Y,"Drucker auswählen:",apen,0,jam2,scrfont);
  1002.     CALL pitext(rpw6,7.8*Font_X,7.2*Font_Y,right(Druckdatei,12),apen,0,jam2,scrfont);
  1003.     call GT_REFRESHWINDOW(w6,null());
  1004.     extime6    = 0;
  1005.     apen        = 1;
  1006.     DO WHILE extime6 = 0;
  1007.         x    = waitpkt(portname);
  1008.         DO FOREVER;
  1009.             msg6        = getpkt(portname);
  1010.             IF msg6    = '0000 0000'x THEN LEAVE;
  1011.             msgclass6= getarg(msg6,0);
  1012.             msgcode6    = getarg(msg6,1);
  1013.             msgid6    = getarg(msg6,9);
  1014.             x            = reply(msg6,0);
  1015.             x            = Auswertung6();
  1016.         END;
  1017.     END;
  1018.     CALL CLOSEWINDOW(w6);
  1019. RETURN;
  1020.  
  1021. UP_Rechnung_fuellen:
  1022.     UEB_RechNr = right("000000" || UEB_RechNr,6);
  1023.     ZW_KundenNr = RE_Kunde.UEB_RechNr;
  1024.     CALL UP_Kunden_Fuellen;
  1025.     DO j = 1 to I_max;
  1026.         ZW_Art_Nr.j = RE_Art.j.UEB_RechNr
  1027.         IF ZW_Art_Nr.j > "" THEN
  1028.             DO;
  1029.                 x = ZW_Art_Nr.j;
  1030.                 ZW_Bez.j            = AR_ArtBez.x;
  1031.                 ZW_EPreis.j        = AR_ArtPreis.x;
  1032.                 ZW_Art_Anz.j    = RE_Anz.j.UEB_RechNr;
  1033.             END;
  1034.         ELSE
  1035.             DO;
  1036.                 ZW_Bez.j            = "";
  1037.                 ZW_EPreis.j        = "";
  1038.                 ZW_Art_Anz.j    = "";
  1039.             END;
  1040.         CALL SETSTRGADID(w2,(j*10+11),ZW_Art_Nr.j,null());
  1041.         CALL SETSTRGADID(w2,(j*10+12),ZW_Art_Anz.j,null());
  1042.         CALL pitext(rpw2,22.5*Font_X,(1.7*j+4.2)*Font_Y,left(ZW_Bez.j,30),apen,0,jam2,scrfont);
  1043.         CALL pitext(rpw2,54.5*Font_X,(1.7*j+4.2)*Font_Y,right(ZW_EPreis.j,10),apen,0,jam2,scrfont);
  1044.     END;
  1045.     ZW_Datum = RE_Datum.UEB_RechNr;
  1046.     CALL pitext(rpw2,9*Font_X,(1.7*I_max+6.2)*Font_Y,left(ZW_Datum,10),apen,0,jam2,scrfont);
  1047.  
  1048.     CALL SETSTRGADID(w2,160,UEB_RechNr,null());
  1049.     CALL UP_B_Berechnung;
  1050.     REFRESHGLIST(conxgad2,w2,null(),-1);
  1051. RETURN;
  1052.  
  1053. UP_Kunden_Fuellen:
  1054.     IF ZW_KundenNr > 0 THEN
  1055.         DO;
  1056.             ZW_Kunden_VorName    = KD_VorName.ZW_KundenNr;
  1057.             ZW_Kunden_Name        = KD_Name.ZW_KundenNr;
  1058.             ZW_PLZ                = KD_PLZ.ZW_KundenNr;
  1059.             ZW_Ort                = KD_Ort.ZW_KundenNr;
  1060.             ZW_Strasse            = KD_Strasse.ZW_KundenNr;
  1061.         END;
  1062.     ELSE
  1063.         DO;
  1064.             ZW_KundenNr            = "";
  1065.             ZW_Kunden_VorName    = "";
  1066.             ZW_Kunden_Name        = "";
  1067.             ZW_PLZ                = "";
  1068.             ZW_Ort                = "";
  1069.             ZW_Strasse            = "";
  1070.         END;
  1071.     CALL SETSTRGADID(w2,11,ZW_KundenNr,null());
  1072.     CALL SETSTRGADID(w2,12,ZW_Kunden_VorName,null());
  1073.     CALL SETSTRGADID(w2,13,ZW_Kunden_Name,null());
  1074.     CALL pitext(rpw2,7.5*Font_X,3.2*Font_Y,LEFT(ZW_PLZ,5),apen,0,jam2,scrfont);
  1075.     CALL pitext(rpw2,21.5*Font_X,3.2*Font_Y,LEFT(ZW_Ort,22),apen,0,jam2,scrfont);
  1076.     CALL pitext(rpw2,54.5*Font_X,3.2*Font_Y,LEFT(ZW_Strasse,22),apen,0,jam2,scrfont);
  1077. RETURN;
  1078.  
  1079. UP_B_Berechnung:
  1080.     ZW_MWSt = 0;
  1081.     ZW_Endsumme = 0;
  1082.     ZW_Rab = 0;
  1083.     ZW_KundenNr = GETSTRGAD(w2,(11),null());
  1084.     ZW_Rabatt = KD_Rabatt.ZW_KundenNr;
  1085.     IF DATATYPE(ZW_Rabatt,'w') THEN
  1086.         ZW_Rabatt = ZW_Rabatt / 100;
  1087.     ELSE
  1088.         ZW_Rabatt = 0;
  1089.     DO j = 1 to I_Max;
  1090.         ZW_Art_Nr = GETSTRGAD(w2,(11+(10*j)),null());
  1091.         ZW_Menge  = GETSTRGAD(w2,(12+(10*j)),null());
  1092.         IF ZW_Art_Nr > 0 & ZW_Menge > 0 THEN
  1093.             DO;
  1094.                 ZW_Summe.j  = (ZW_EPreis.j * ZW_Menge) + 0.005;
  1095.                 IF ZW_Summe.j < 0 THEN
  1096.                     ZW_Summe.j  = ZW_Summe.j - 0.01;
  1097.                 ZW_Summe.j    = trunc(ZW_Summe.j,2);
  1098.                 ZW_Rab        = ZW_Rab + (ZW_Summe.j * ZW_Rabatt);
  1099.                 ZW_Summe.j    = right(ZW_Summe.j,10);
  1100.                 ZW_Endsumme    = ZW_Endsumme + ZW_Summe.j;
  1101.                 i = AR_ArtMWSt.ZW_Art_Nr;
  1102.                 ZW_MWSt = ZW_MWSt + ((ZW_Summe.j - (ZW_Summe.j * ZW_Rabatt)) * MWSt_Rech.i);
  1103.             END;
  1104.         ELSE
  1105.             ZW_Summe.j = "";
  1106.         CALL pitext(rpw2,66.5*Font_X,(1.7*j+4.2)*Font_Y,right(ZW_Summe.j,10),apen,0,jam2,scrfont);
  1107.     END;
  1108.     ZW_Endsumme    = trunc(ZW_Endsumme - ZW_Rab + 0.005,2);
  1109.     ZW_Rab        = trunc(ZW_Rab + 0.005,2);
  1110.     ZW_MWSt        = trunc(ZW_MWSt + 0.005,2);
  1111.     CALL pitext(rpw2,66.5*Font_X,(1.7*I_max+6.2)*Font_Y,right(ZW_Endsumme,10),apen,0,jam2,scrfont);
  1112.     CALL pitext(rpw2,29.25*Font_X,(1.7*I_max+6.2)*Font_Y,right(ZW_Rab,9),apen,0,jam2,scrfont);
  1113.     CALL pitext(rpw2,46.25*Font_X,(1.7*I_max+6.2)*Font_Y,right(ZW_MWSt,9),apen,0,jam2,scrfont);
  1114. RETURN;
  1115.  
  1116. Auswertung2:
  1117.     SELECT
  1118.         WHEN msgcode2 = 75 | msgcode2 = 107 THEN
  1119.             ACTIVATEGADID(11,w2,null());
  1120.         WHEN msgcode2 = 86 | msgcode2 = 118 THEN
  1121.             ACTIVATEGADID(12,w2,null());
  1122.         WHEN msgcode2 = 78 | msgcode2 = 110 THEN
  1123.             ACTIVATEGADID(13,w2,null());
  1124.         WHEN msgcode2 = 82 | msgcode2 = 114 THEN
  1125.             ACTIVATEGADID(160,w2,null());
  1126.         WHEN msgid2 = 10 | msgcode2 = 76 | msgcode2 = 108 THEN
  1127.             DO;
  1128.                 CALL UP_Adressen;
  1129.                 IF ZW_KundenNr = K_max THEN
  1130.                     ZW_KundenNr = K_max - 1;
  1131.                 CALL UP_Kunden_Fuellen;
  1132.                 CALL UP_B_Berechnung;
  1133.                 REFRESHGLIST(conxgad2,w2,null(),-1);
  1134.             END;
  1135.         WHEN msgid2 = 11 THEN
  1136.             DO;
  1137.                 Test = GETSTRGAD(w2,msgid2,null());
  1138.                 IF Test ~= ZW_KundenNr THEN
  1139.                     DO;
  1140.                         ZW_KundenNr = TEST;
  1141.                         IF DATATYPE(ZW_KundenNr,'w') THEN
  1142.                             DO;
  1143.                                 IF ZW_KundenNr = K_max THEN
  1144.                                     ZW_KundenNr = K_max - 1;
  1145.                                 ZW_KundenNr = RIGHT("000000" || ZW_KundenNr,6);
  1146.                                 ACTIVATEGADID(21,w2,null());
  1147.                             END;
  1148.                         ELSE
  1149.                             DO;
  1150.                                 rtezrequest("Kundennummer nicht numerisch!",,,ReqCent);
  1151.                                 ZW_KundenNr = "000001";
  1152.                                 ACTIVATEGADID(11,w2,null());
  1153.                             END;
  1154.                         CALL UP_Kunden_Fuellen;
  1155.                         CALL UP_B_Berechnung;
  1156.                         REFRESHGLIST(conxgad2,w2,null(),-1);
  1157.                     END;
  1158.             END;
  1159.         WHEN msgid2 = 12 THEN
  1160.             DO;
  1161.                 Test = GETSTRGAD(w2,msgid2,null());
  1162.                 IF Test ~= ZW_Kunden_VorName THEN
  1163.                     DO;
  1164.                         ZW_Kunden_VorName = Test;
  1165.                         DO I = 1 to K_max;
  1166.                             I = RIGHT("000000" || I,6);
  1167.                             IF POS(UPPER(ZW_Kunden_VorName),UPPER(KD_VorName.I)) THEN
  1168.                                 DO;
  1169.                                     ZW_KundenNr = I;
  1170.                                     I = K_max + 5;
  1171.                                     ACTIVATEGADID(21,w2,null());
  1172.                                 END;
  1173.                         END;
  1174.                         IF I < (K_max + 5) THEN
  1175.                             DO;
  1176.                                 rtezrequest("Kein Kunde mit diesem Vornamen vorhanden!",,,ReqCent);
  1177.                                 ZW_KundenNr = GETSTRGAD(w2,11,null());
  1178.                                 IF ZW_KundenNr = "" THEN
  1179.                                     ZW_KundenNr = "000001";
  1180.                                 ACTIVATEGADID(12,w2,null());
  1181.                             END;
  1182.                         CALL UP_Kunden_Fuellen;
  1183.                         CALL UP_B_Berechnung;
  1184.                         REFRESHGLIST(conxgad2,w2,null(),-1);
  1185.                     END;
  1186.             END;
  1187.         WHEN msgid2 = 13 THEN
  1188.             DO;
  1189.                 Test = GETSTRGAD(w2,13,null());
  1190.                 IF Test ~= ZW_Kunden_Name THEN
  1191.                     DO;
  1192.                         ZW_Kunden_Name = Test;
  1193.                         DO I = 1 to K_max;
  1194.                             I = RIGHT("000000" || I,6);
  1195.                             IF POS(UPPER(ZW_Kunden_Name),UPPER(KD_Name.I)) THEN
  1196.                                 DO;
  1197.                                     ZW_KundenNr = I;
  1198.                                     ACTIVATEGADID(21,w2,null());
  1199.                                     I = K_max + 5;
  1200.                                 END;
  1201.                         END;
  1202.                         IF I < (K_max + 5) THEN
  1203.                             DO;
  1204.                                 rtezrequest("Kein Kunde mit diesem Familiennamen vorhanden!",,,ReqCent);
  1205.                                 ZW_KundenNr = GETSTRGAD(w2,11,null());
  1206.                                 IF ZW_KundenNr = "" THEN
  1207.                                     ZW_KundenNr = "000001";
  1208.                                 ACTIVATEGADID(13,w2,null());
  1209.                             END;
  1210.                         CALL UP_Kunden_Fuellen;
  1211.                         CALL UP_B_Berechnung;
  1212.                         REFRESHGLIST(conxgad2,w2,null(),-1);
  1213.                     END;
  1214.             END;
  1215.         WHEN msgid2 = 20 | msgid2 = 30 | msgid2 = 40 | msgid2 = 50 | msgid2 = 60 |,
  1216.             msgid2 = 70 | msgid2 = 80 | msgid2 = 90 | msgid2 =100 | msgid2 =110 |,
  1217.             msgid2 =120 | msgid2 =130 | msgid2 =140 THEN
  1218.             DO;
  1219.                 CALL UP_Artikel;
  1220.                 i = (msgid2 - 10) / 10;
  1221.                 ZW_Art_Nr.i    = ZW_ArtikelNr;
  1222.                 IF ZW_Art_Nr.i = A_max THEN
  1223.                     ZW_Art_Nr.i = "000000" ||(A_max - 1);
  1224.                 ZW_Art_Nr.i    = right(ZW_Art_Nr.i,6);
  1225.                 Test            = ZW_Art_Nr.i;
  1226.                 ZW_EPreis.i    = RIGHT(AR_ArtPreis.Test,9);
  1227.                 ZW_Bez.i        = AR_ArtBez.Test;
  1228.                 CALL SETSTRGADID(w2,msgid2+1,ZW_Art_Nr.i,null());
  1229.                 CALL pitext(rpw2,54.5*Font_X,(1.7*i+4.2)*Font_Y,RIGHT(ZW_EPreis.i,10),apen,0,JAM2,scrfont);
  1230.                 CALL pitext(rpw2,22.5*Font_X,(1.7*i+4.2)*Font_Y,LEFT(ZW_Bez.i,30),apen,0,JAM2,scrfont);
  1231.                 CALL UP_B_Berechnung;
  1232.                 ACTIVATEGADID(msgid2+2,w2,null());
  1233.                 REFRESHGLIST(conxgad2,w2,null(),-1);
  1234.             END;
  1235.         WHEN msgid2 = 21 | msgid2 = 31 | msgid2 = 41 | msgid2 = 51 | msgid2 = 61 |,
  1236.             msgid2 = 71 | msgid2 = 81 | msgid2 = 91 | msgid2 =101 | msgid2 =111 |,
  1237.             msgid2 =121 | msgid2 =131 | msgid2 =141 THEN
  1238.             DO;
  1239.                 i = (msgid2 - 11) / 10;
  1240.                 Test = GETSTRGAD(w2,msgid2,null());
  1241.                 IF Test ~= ZW_Art_Nr.i THEN
  1242.                     DO;
  1243.                         ZW_Art_Nr.i = Test
  1244.                         IF ZW_Art_Nr.i = "" THEN
  1245.                             DO;
  1246.                                 ZW_Art_Anz.i = "";
  1247.                                 CALL SETSTRGADID(w2,msgid2+1,ZW_Art_Anz.i,null());
  1248.                                 ZW_EPreis.i    = "";
  1249.                                 ZW_Bez.i        = "";
  1250.                             END;
  1251.                         ELSE
  1252.                             DO;
  1253.                                 IF DATATYPE(ZW_Art_Nr.i,'w') THEN
  1254.                                     DO;
  1255.                                         IF ZW_Art_Nr.i > (A_max - 1) THEN
  1256.                                             ZW_Art_Nr.i = A_max - 1;
  1257.                                         ZW_Art_Nr.i = RIGHT("000000" || ZW_Art_Nr.i,6);
  1258.                                     END;
  1259.                                 ELSE
  1260.                                     DO;
  1261.                                         rtezrequest("Artikelnummer nicht numerisch, bitte prüfen!",,,ReqCent);
  1262.                                         ZW_Art_Nr.i = "000001";
  1263.                                         ACTIVATEGADID(msgid2,w2,null());
  1264.                                     END;
  1265.                                 TEST = ZW_Art_Nr.i;
  1266.                                 ZW_EPreis.i    = AR_ArtPreis.Test;
  1267.                                 ZW_Bez.i        = AR_ArtBez.Test;
  1268.                             END;
  1269.                         CALL SETSTRGADID(w2,msgid2,ZW_Art_Nr.i,null());
  1270.                         CALL pitext(rpw2,54.5*Font_X,(1.7*i+4.2)*Font_Y,RIGHT(ZW_EPreis.i,10),apen,0,JAM2,scrfont);
  1271.                         CALL pitext(rpw2,22.5*Font_X,(1.7*i+4.2)*Font_Y,LEFT(ZW_Bez.i,30),apen,0,JAM2,scrfont);
  1272.                         CALL UP_B_Berechnung;
  1273.                         REFRESHGLIST(conxgad2,w2,null(),-1);
  1274.                     END;
  1275.                 END;
  1276.             WHEN msgid2 = 22 | msgid2 = 32 | msgid2 = 42 | msgid2 = 52 | msgid2 = 62 |,
  1277.                 msgid2 = 72 | msgid2 = 82 | msgid2 = 92 | msgid2 =102 | msgid2 =112 |,
  1278.                 msgid2 =122 | msgid2 =132 | msgid2 =142 THEN
  1279.                 DO;
  1280.                     i = (msgid2 - 12) / 10;
  1281.                     Test = GETSTRGAD(w2,msgid2,null());
  1282.                     IF Test ~= ZW_Art_Anz.i THEN
  1283.                         DO;
  1284.                             ZW_Art_Anz.i = Test
  1285.                             IF ~DATATYPE(ZW_Art_Anz.i,'n') THEN
  1286.                                 DO;
  1287.                                     rtezrequest("Artikelanzahl nicht numerisch, bitte prüfen!",,,ReqCent);
  1288.                                     ZW_Art_Anz.i = 1;
  1289.                                     ACTIVATEGADID(msgid2,w2,null());
  1290.                                 END;
  1291.                             CALL SETSTRGADID(w2,msgid2,ZW_Art_Anz.i,null());
  1292.                             IF ZW_EPreis.i > "" THEN
  1293.                                 CALL UP_B_Berechnung;
  1294.                             REFRESHGLIST(conxgad2,w2,null(),-1);
  1295.                         END;
  1296.                 END;
  1297.             WHEN msgid2 = 160 THEN
  1298.                 DO;
  1299.                     Test = GETSTRGAD(w2,msgid2,null());
  1300.                     IF Test ~= UEB_RechNr THEN
  1301.                         DO;
  1302.                             CALL UP_Rechnung_OK;
  1303.                             UEB_RechNr = right("000000" || Test,6);
  1304.                             IF UEB_RechNr > R_max THEN
  1305.                                 UEB_RechNr = R_max;
  1306.                             ELSE IF UEB_RechNr < 1 THEN
  1307.                                 UEB_RechNr = "000001";
  1308.                             CALL UP_Rechnung_fuellen;
  1309.                         END;
  1310.                 END;
  1311.             WHEN msgid2 = 161 | msgcode2 = 62 THEN
  1312.                 DO;
  1313.                     Test = UEB_RechNr + 1;
  1314.                     CALL UP_Rechnung_OK;
  1315.                     IF UEB_RechNr <= R_max THEN
  1316.                         DO;
  1317.                             UEB_RechNr = right("000000" || Test,6);
  1318.                             CALL UP_Rechnung_fuellen;
  1319.                         END;
  1320.                 END;
  1321.             WHEN msgid2 = 162 | msgcode2 = 60 THEN
  1322.                 DO;
  1323.                     Test = UEB_RechNr - 1;
  1324.                     CALL UP_Rechnung_OK;
  1325.                     IF UEB_RechNr > 0 THEN
  1326.                         DO;
  1327.                             UEB_RechNr = right("000000" || Test,6);
  1328.                             CALL UP_Rechnung_fuellen;
  1329.                         END;
  1330.                 END;
  1331.             WHEN msgid2 = 163 | msgclass2 = CLOSEWINDOW | msgcode2 = 69 | msgcode2 = 101 | msgcode2 = 27  THEN
  1332.                 DO;
  1333.                     CALL UP_Rechnung_OK;
  1334.                     extime2 = 1;
  1335.                 END;
  1336.             WHEN msgid2 = 164 | msgcode2 = 68 | msgcode2 = 100 THEN
  1337.                 DO;
  1338.                     CALL UP_Rechnung_OK;
  1339.                     CALL UP_Drucken;
  1340.                     ZW_KundenNr    = right("000000" || GETSTRGAD(w2,11,null()),6);
  1341.                     UEB_RechNr    = right("000000" || GETSTRGAD(w2,160,null()),6);
  1342.                 END;
  1343.             WHEN msgid2 = 165 THEN
  1344.                 CALL UP_Rechnung_Fuellen;
  1345.             OTHERWISE
  1346.                 NOP;
  1347.         END;
  1348. RETURN 1;
  1349.  
  1350. Auswertung3:
  1351.     SELECT
  1352.         WHEN msgcode3 = 82 | msgcode3 = 114 THEN
  1353.             ACTIVATEGADID(10,w3,null());
  1354.         WHEN msgcode3 = 75 | msgcode3 = 107 THEN
  1355.             ACTIVATEGADID(11,w3,null());
  1356.         WHEN msgid3 = 10 THEN /* Rechnungsnummer wurde eingegeben/geändert */
  1357.             DO;
  1358.                 Test = GETSTRGAD(w3,10,null());
  1359.                 IF Test ~= UEB_RechNr THEN
  1360.                     DO;
  1361.                         UEB_RechNr = TEST;
  1362.                         IF DATATYPE(UEB_RechNr,'w') THEN
  1363.                             DO;
  1364.                                 IF UEB_RechNr > (R_max - 1) THEN
  1365.                                     UEB_RechNr = R_max - 1;
  1366.                                 UEB_RechNr = RIGHT("000000" || UEB_RechNr,6);
  1367.                             END;
  1368.                         ELSE
  1369.                             DO;
  1370.                                 rtezrequest("Rechnungsnummer nicht numerisch!",,,ReqCent);
  1371.                                 ACTIVATEGADID(10,w3,null());
  1372.                                 UEB_RechNr = "000001";
  1373.                             END;
  1374.                         CALL SETSTRGADID(w3,10,UEB_RechNr,null());
  1375.                         REFRESHGLIST(conxgad3,w3,null(),-1);
  1376.                     END;
  1377.             END;
  1378.         WHEN msgid3 = 11 THEN /* Kundennummer wurde eingegeben/geändert */
  1379.             DO;
  1380.                 Test = GETSTRGAD(w3,11,null());
  1381.                 IF Test ~= ZW_KundenNr THEN
  1382.                     DO;
  1383.                         ZW_KundenNr = TEST;
  1384.                         IF DATATYPE(ZW_KundenNr,'w') THEN
  1385.                             DO;
  1386.                                 IF ZW_KundenNr > (K_max - 1) THEN
  1387.                                     ZW_KundenNr = K_max - 1;
  1388.                                 ZW_KundenNr = RIGHT(("000000" || ZW_KundenNr),6);
  1389.                             END;
  1390.                         ELSE
  1391.                             DO;
  1392.                                 rtezrequest("Kundennummer nicht numerisch!",,,ReqCent);
  1393.                                 ACTIVATEGADID(11,w3,null());
  1394.                                 ZW_KundenNr = "000001";
  1395.                             END;
  1396.                         CALL SETSTRGADID(w3,11,ZW_KundenNr,null());
  1397.                         REFRESHGLIST(conxgad3,w3,null(),-1);
  1398.                     END;
  1399.             END;
  1400.         WHEN msgid3 = 12 THEN
  1401.             Druckart = GETVALUE(mlabels,msgcode3*4,4,'s');
  1402.         WHEN msgid3 = 13 | msgcode3 = 80 | msgcode3 = 112 THEN
  1403.             DO;
  1404.                 address COMMAND 'Printer >NIL:';
  1405.                 prefs = allocmem(232);
  1406.                 x = getprefs(prefs,232);
  1407.                 B_laenge = GETVALUE(prefs,178,2,'n');
  1408.                 call freemem(prefs,232);
  1409.             END;
  1410.         WHEN msgid3 = 14 | msgcode3 = 86 | msgcode3 = 118 THEN
  1411.             DO;
  1412.                 x = rtfilerequest("ram:",,"Wählen Sie das Druckverzeichnis",,"rtfi_flags=freqf_nofiles" ReqCent);
  1413.                 IF rtresult THEN;
  1414.                     Druckverz = x;
  1415.             END;
  1416.         WHEN msgid3 = 15 | msgcode3 = 67 | msgcode3 = 99 THEN
  1417.             DO;
  1418.                 IF Druckart = "Drucker" THEN
  1419.                     DO;
  1420.                         Druckfile = "t:Druck"
  1421.                         Ergebnis = rtezrequest("Bitte leeres Blatt einlegen","Drucken|Abbruch",,ReqCent);
  1422.                     END;
  1423.                 ELSE
  1424.                     DO;
  1425.                         Druckfile = Druckverz || "Rechnung." || UEB_RechNr;
  1426.                         Ergebnis = rtezrequest("Speichere Druck in" Druckfile,"OK|Abbruch",,ReqCent);
  1427.                     END;
  1428.                 IF Ergebnis = 1 then
  1429.                     DO;
  1430.                         CALL UP_R_Berechnung;
  1431.                         Z.1    = D_Rueck
  1432.                         IF D_YAbst < 2 THEN
  1433.                             DO I = D_YAbst TO 2;
  1434.                                 Z.1 = Z.1 || LF;
  1435.                             END;
  1436.                         X = 7-D_XAbst;
  1437.                         IF X < 0 THEN
  1438.                             X = 0;
  1439.                         Z.1    = Z.1 || Copies(" ",X) left(FI_Anrede,55) || right(datum,10);
  1440.                         Z.2    = Copies(" ",X) FI_VorName FI_Name;
  1441.                         Z.3    = Copies(" ",X) FI_Strasse LF;
  1442.                         Z.4    = Copies(" ",X) FI_PLZ FI_Ort LF LF LF LF;
  1443.                         Z.5    = Copies(" ",X) D_SKlein || D_UEin || FI_Vorname FI_Name "*" FI_Strasse "*" FI_PLZ FI_Ort || D_UAus || D_SStand || LF;
  1444.                         Z.6    = Copies(" ",X) KD_Anrede.ZW_KundenNr;
  1445.                         Z.7    = Copies(" ",X) KD_VorName.ZW_KundenNr KD_Name.ZW_KundenNr;
  1446.                         Z.8    = Copies(" ",X) KD_Strasse.ZW_KundenNr LF;
  1447.                         Z.9    = Copies(" ",X) KD_PLZ.ZW_KundenNr KD_Ort.ZW_KundenNr
  1448.                         IF FI_Land ~= KD_Land.ZW_KundenNr THEN
  1449.                             Z.9 = Z.9 || "   (" || KD_Land.ZW_KundenNr || ")";
  1450.                         Z.9  = Z.9 || LF || LF || LF;
  1451.                         Z.10 = Copies(" ",X) "Kundennr:" ZW_KundenNr;
  1452.                         Z.11 = Copies(" ",X) "Rechnung:" UEB_RechNr;
  1453.                         Z.12 = Copies(" ",X) "Datum   :" RE_Datum.UEB_RechNr LF;
  1454.                         Z.13 = Copies(" ",X) "Art.Nr Anzahl" left(" Artikelbezeichnung",33) "Preis:     Summe:";
  1455.                         Z.14 = Copies(" ",X) Copies("-",65);
  1456.                         DO i = 1 to I_max;
  1457.                             j = i + 14;
  1458.                             IF ZW_Art_Nr.i > "" THEN
  1459.                                 Z.j = Copies(" ",X) ZW_Art_Nr.i right(ZW_Menge.i,6) || "  " || left(ZW_ArtBez.i,28) right(ZW_EPreis.i,10) right(ZW_Summe.i,10);
  1460.                             ELSE
  1461.                                 Z.j = "";
  1462.                         END;
  1463.                         IF I_max = 11 THEN
  1464.                             DO;
  1465.                                 Z.26 = "";
  1466.                                 Z.27 = "";
  1467.                             END;
  1468.                         IF ZW_Rab > 0 THEN
  1469.                             DO;
  1470.                                 TEXT = "Abzüglich"  ZW_Rabatt  "% Rabatt =";
  1471.                                 Z.28 = Copies(" ",X) left(TEXT,55) right(ZW_Rab,9);
  1472.                             END;
  1473.                         ELSE
  1474.                             Z.28 = "";
  1475.                         Z.29 = Copies(" ",X) Copies("-",65);
  1476.                         Z.30 = Copies(" ",X) left("Gesamt Netto DM:",54) right(ZW_Endsumme-ZW_MWSt,10);
  1477.                         Z.31 = Copies(" ",X) left("zzgl. Mehrwertsteuer" MWSt_Satz.1 "% bzw." MWSt_Satz.2 "%",55) ZW_MWSt;
  1478.                         Z.32 = Copies(" ",X) left("Gesamt Brutto DM:",54) ZW_Endsumme;
  1479.                         Z.33 = Copies(" ",X) Copies("=",65) LF LF;
  1480.                         Z.34 = Copies(" ",X) D_KEin || "Bitte bei allen Bestellungen die Kundennummer angeben" D_KAus LF;
  1481.                         Z.35 = Copies(" ",X) "Bankverbindung:"
  1482.                         Z.36 = Copies(" ",X) FI_BankBez "  BLZ:" FI_BLZ "  Konto:" FI_Konto LF LF;
  1483.                         Z.37 = Copies(" ",X) "Vielen Dank für Ihren Auftrag" D_Ende;
  1484.                         Druckdat = "Rechnung";
  1485.                         OPEN(Druckdat,Druckfile,'write');
  1486.                         DO i = 1 to 37;
  1487.                             WRITELN(Druckdat,Z.i);
  1488.                         END;
  1489.                         CLOSE(Druckdat);
  1490.                         IF Druckart = "Drucker" THEN
  1491.                             address COMMAND "run >NIL: copy t:Druck to" Druckport;
  1492.                     END;
  1493.             END;
  1494.         WHEN msgid3 = 16 | msgcode3 = 84 | msgcode3 = 116 THEN
  1495.             DO;
  1496.                 IF Druckart = "Drucker" THEN
  1497.                     DO;
  1498.                         Druckfile = "t:Druck"
  1499.                         Ergebnis = rtezrequest("Bitte leere Paketkarte einlegen","Einfach|Nachnahme|Abbruch",,ReqCent);
  1500.                     END;
  1501.                 ELSE
  1502.                     DO;
  1503.                         Druckfile = Druckverz || "Paketkarte." || UEB_RechNr;
  1504.                         Ergebnis = rtezrequest("Speichere Druck in" Druckfile,"Einfach|Nachnahme|Abbruch",,ReqCent);
  1505.                     END;
  1506.                 IF Ergebnis ~= 0 then
  1507.                     DO;
  1508.                         CALL UP_R_Berechnung;
  1509.                         Z.1    = D_Rueck
  1510.                         IF D_YAbst < 2 THEN
  1511.                             DO I = D_YAbst TO 2;
  1512.                                 Z.1 = Z.1 || LF;
  1513.                             END;
  1514.                         X = 2-D_XAbst;
  1515.                         IF X < 0 THEN
  1516.                             X = 0;
  1517.                         Z.1 = Z.1 || Copies(" ",X) FI_VorName FI_Name LF;
  1518.                          Z.2 = Copies(" ",X) FI_Strasse LF;
  1519.                         Z.3 = Copies(" ",X) FI_PLZ FI_Ort LF LF;
  1520.                         IF Ergebnis = 1 THEN
  1521.                             Z.4 = "";
  1522.                         ELSE
  1523.                             Z.4 = Copies(" ",30+X) D_CRot  "Nachnahme=" ZW_Endsumme D_CSchw;
  1524.                         Z.5 = Copies(" ",X) left(FI_BankKurz,29);
  1525.                         Z.6 = Copies(" ",X) "BLZ:" FI_BLZ;
  1526.                         Z.7 = Copies(" ",X) "Konto:" FI_Konto LF LF;
  1527.                         Z.8 = Copies(" ",30+X) KD_VorName.ZW_KundenNr KD_Name.ZW_KundenNr LF;
  1528.                         Z.9 = Copies(" ",30+X) KD_Strasse.ZW_KundenNr LF LF LF;
  1529.                         Z.10 = D_SGross  KD_PLZ.ZW_KundenNr D_SStand || CR || Copies(" ",30+X) KD_Ort.ZW_KundenNr
  1530.                         IF FI_Land ~= KD_Land.ZW_KundenNr THEN
  1531.                             Z.10 = Z.10 || "   (" || KD_Land.ZW_KundenNr || ")";
  1532.                         Z.10 = Z.10 || D_Ende;
  1533.                         Druckdat = "Paketkarte";
  1534.                         OPEN(Druckdat,Druckfile,'write');
  1535.                         DO i = 1 to 10;
  1536.                             WRITELN(Druckdat,Z.i);
  1537.                         END;
  1538.                         CLOSE(Druckdat);
  1539.                         IF Druckart = "Drucker" THEN
  1540.                             address COMMAND "run >NIL: copy t:Druck to" Druckport;
  1541.                     END;
  1542.             END;
  1543.         WHEN msgid3 = 17 | msgcode3 = 90 | msgcode3 = 122 THEN
  1544.             DO;
  1545.                 IF Druckart = "Drucker" THEN
  1546.                     DO;
  1547.                         Druckfile = "t:Druck"
  1548.                         Ergebnis = rtezrequest("Bitte leeren Zahlschein einlegen","Klein|Groß|Abbruch",,ReqCent);
  1549.                     END;
  1550.                 ELSE
  1551.                     DO;
  1552.                         Druckfile = Druckverz || "Zahlschein." || UEB_RechNr;
  1553.                         Ergebnis = rtezrequest("Speichere Druck in" Druckfile,"Klein|Groß|Abbruch",,ReqCent);
  1554.                     END;
  1555.                 IF Ergebnis ~= 0 then
  1556.                     DO;
  1557.                         CALL UP_R_Berechnung;
  1558.                         Z.1    = D_Rueck
  1559.                         IF D_YAbst < 5 THEN
  1560.                             DO I = D_YAbst TO 4;
  1561.                                 Z.1 = Z.1 || LF;
  1562.                             END;
  1563.                         X = 3-D_XAbst;
  1564.                         IF X < 0 THEN
  1565.                             X = 0;
  1566.                         Z.8  = UP_Sperr(left(FI_Name Fi_VorName,26));
  1567.                         Z.1  = Z.1 || Copies(" ",X) || Z.8 || LF;
  1568.                         Z.8  = UP_Sperr(COMPRESS(FI_Konto));
  1569.                         Z.9  = UP_Sperr(COMPRESS(FI_BLZ));
  1570.                         Z.2  = Copies(" ",X) || left(Z.8,10) || CR || Copies(" ",38+X) || Z.9 || LF;
  1571.                         Z.8  = UP_Sperr(left(FI_BankBez,26))
  1572.                         Z.3  = Copies(" ",X) || Z.8 || LF;
  1573.                         i = UP_Sperr(ZW_Endsumme - 3.00);
  1574.                         Z.4  = Copies(" ",X+30) || i || LF;
  1575.                         Z.8  = UP_Sperr("ReNr:" UEB_RechNr);
  1576.                         Z.5  = Copies(" ",X) || Z.8 || LF || LF || LF;
  1577.                         Z.8  = UP_Sperr(left(KD_Name.ZW_KundenNr KD_VorName.ZW_KundenNr || "," KD_Ort.ZW_KundenNr,27));
  1578.                         Z.6  = Copies(" ",X) || Z.8 || LF;
  1579.                         Z.7  = Copies(" ",22+X) || i;
  1580.                         Druckdat = "Zahlschein"
  1581.                         OPEN(Druckdat,Druckfile,'write');
  1582.                         IF Ergebnis = 1 THEN
  1583.                             max = 7;
  1584.                         ELSE
  1585.                             DO;
  1586.                                 max = 15;
  1587.                                 Z.8  = LF || LF || LF || LF || LF || LF || LF || LF || LF || Copies(" ",16+X) || FI_Name FI_VorName;
  1588.                                 Z.9  = Copies(" ",16+X) || FI_Strasse;
  1589.                                 Z.10 = Copies(" ",16+X) || FI_PLZ FI_Ort || LF || LF || LF || LF || LF || LF;
  1590.                                 ZW_Endsumme = right(ZW_Endsumme,9);
  1591.                                 Z.11 = Copies(" ",X-1) || right(left(ZW_Endsumme,6),5) || right(ZW_Endsumme,27) LF;
  1592.                                 Z.12 = Copies(" ",X-1) || left(KD_Name.ZW_KundenNr KD_VorName.ZW_KundenNr,15) Copies(" ",9) KD_VorName.ZW_KundenNr KD_Name.ZW_KundenNr LF;
  1593.                                 Z.13 = Copies(" ",X-1) || left(KD_Strasse.ZW_KundenNr,15) Copies(" ",9) KD_Strasse.ZW_KundenNr LF;
  1594.                                 Z.14 = Copies(" ",X-1) || left(KD_PLZ.ZW_KundenNr KD_Ort.ZW_KundenNr,15);
  1595.                                 Z.15 = Copies(" ",24+X) || KD_PLZ.ZW_KundenNr KD_Ort.ZW_KundenNr;
  1596.                             END;
  1597.                         Z.max = Z.max || D_Ende;
  1598.                         DO i = 1 to max;
  1599.                             WRITELN(Druckdat,Z.i);
  1600.                         END;
  1601.                         CLOSE(Druckdat);
  1602.                         IF Druckart = "Drucker" THEN
  1603.                             address COMMAND "run >NIL: copy t:Druck to" Druckport;
  1604.                     END;
  1605.             END;
  1606.         WHEN msgid3 = 18 | msgcode3 = 77 | msgcode3 = 109 THEN
  1607.             DO;
  1608.                 MAdd.01 = 0;
  1609.                 MAdd.02 = 31;
  1610.                 i = right(datum,4);
  1611.                 i = i / 4;
  1612.                 i = lastpos('.',i);
  1613.                 IF i = 0 THEN
  1614.                     MAdd.03 = MAdd.02 + 29;
  1615.                 ELSE
  1616.                     MAdd.03 = MAdd.02 + 28;
  1617.                 MAdd.04 = MAdd.03 + 31;
  1618.                 MAdd.05 = MAdd.04 + 30;
  1619.                 MAdd.06 = MAdd.05 + 31;
  1620.                 MAdd.07 = MAdd.06 + 30;
  1621.                 MAdd.08 = MAdd.07 + 31;
  1622.                 MAdd.09 = MAdd.08 + 31;
  1623.                 MAdd.10 = MAdd.09 + 30;
  1624.                 MAdd.11 = MAdd.10 + 31;
  1625.                 MAdd.12 = MAdd.11 + 30;
  1626.                 Monat    = SUBSTR(RE_Datum.UEB_RechNr,4,2);
  1627.                 Tag    = LEFT(RE_Datum.UEB_RechNr,2);
  1628.                 Jahr    = RIGHT(RE_Datum.UEB_RechNr,4);
  1629.                 Rec    = Tag + MAdd.Monat + (365.2423482188 * Jahr);
  1630.                 Rec    = trunc(Rec)
  1631.                 Nun    = Date(b);
  1632.                 Dif    = Nun - Rec;
  1633.                 CALL UP_R_Berechnung;
  1634.                 Select;
  1635.                     WHEN RE_Mahnung.UEB_RechNr = 1 THEN
  1636.                         DO;
  1637.                             MahnNr = rtezrequest("Es wurde bereits eine Mahnung gedruckt!" LF ||,
  1638.                                                         "Seit Rechnungserstellung sind" Dif "Tage vergangen.",
  1639.                                                         ,"2.Mahnung|1.Mahnung|Abbruch",,ReqCent);
  1640.                             SELECT;
  1641.                                 WHEN MahnNr = 1 THEN
  1642.                                     MahnNr = 2;
  1643.                                 WHEN MahnNr = 2 THEN
  1644.                                     MahnNr = 1;
  1645.                                 OTHERWISE
  1646.                                     NOP;
  1647.                             END;
  1648.                         END;
  1649.                     WHEN RE_Mahnung.UEB_RechNr = 2 THEN
  1650.                         DO;
  1651.                             MahnNr = rtezrequest("Es wurden bereits zwei Mahnungen gedruckt!" LF ||,
  1652.                                                         "Seit Rechnungserstellung sind" Dif "Tage vergangen.",
  1653.                                                         ,"3.Mahnung|2.Mahnung|1.Mahnung|Abbruch",,ReqCent);
  1654.                             SELECT;
  1655.                                 WHEN MahnNr = 1 THEN
  1656.                                     MahnNr = 3;
  1657.                                 WHEN MahnNr = 3 THEN
  1658.                                     MahnNr = 1;
  1659.                                 OTHERWISE
  1660.                                     NOP;
  1661.                             END;
  1662.                         END;
  1663.                     WHEN RE_Mahnung.UEB_RechNr = 3 THEN
  1664.                         DO;
  1665.                             MahnNr = rtezrequest("Es wurden bereits drei Mahnungen gedruckt!" LF ||,
  1666.                                                         "Seit Rechnungserstellung sind" Dif "Tage vergangen" LF ||,
  1667.                                                         "Es ist KEINE weiter Mahnung möglich",
  1668.                                                         ,"Abbruch|3.Mahnung|2.Mahnung|1.Mahnung",,ReqCent);
  1669.                             SELECT;
  1670.                                 WHEN MahnNr = 0 THEN
  1671.                                     MahnNr = 1;
  1672.                                 WHEN MahnNr = 1 THEN
  1673.                                     MahnNr = 0;
  1674.                                 WHEN MahnNr = 2 THEN
  1675.                                     MahnNr = 3;
  1676.                                 WHEN MahnNr = 3 THEN
  1677.                                     MahnNr = 2;
  1678.                                 OTHERWISE
  1679.                                     NOP;
  1680.                             END;
  1681.                         END;
  1682.                     OTHERWISE
  1683.                         MahnNr = rtezrequest("Es wurde noch keine Mahnung gedruckt!" LF ||,
  1684.                                                     "Seit Rechnungserstellung sind" Dif "Tage vergangen",
  1685.                                                     ,"1.Mahnung|Abbruch",,ReqCent);
  1686.                 END;
  1687.                 IF MahnNr = 0 THEN
  1688.                     Ergebnis = 0;
  1689.                 ELSE
  1690.                     DO;
  1691.                         IF Druckart = "Drucker" THEN
  1692.                             DO;
  1693.                                 Druckfile = "t:Druck"
  1694.                                 Ergebnis = rtezrequest("Bitte leeres Blatt einlegen","Drucken|Abbruch",,ReqCent);
  1695.                             END;
  1696.                         ELSE
  1697.                             DO;
  1698.                                 Druckfile = Druckverz || "Mahnung-" || MahnNr || "."  || UEB_RechNr;
  1699.                                 Ergebnis = rtezrequest("Speichere Druck in" Druckfile,"OK|Abbruch",,ReqCent);
  1700.                             END;
  1701.                     END;
  1702.                 IF Ergebnis = 1 then
  1703.                     DO;
  1704.                         IF RE_Mahnung.UEB_RechNr < MahnNr THEN
  1705.                             RE_Mahnung.UEB_RechNr = MahnNr;
  1706.                         CALL UP_R_Berechnung;
  1707.                         Z.1    = D_Rueck
  1708.                         IF D_YAbst < 2 THEN
  1709.                             DO I = D_YAbst TO 2;
  1710.                                 Z.1 = Z.1 || LF;
  1711.                             END;
  1712.                         X = 7-D_XAbst;
  1713.                         IF X < 0 THEN
  1714.                             X = 0;
  1715.                         Z.1  = Z.1 || Copies(" ",X) || left(FI_Anrede,55) || right(datum,10);
  1716.                         Z.2  = Copies(" ",X) || FI_VorName FI_Name;
  1717.                         Z.3  = Copies(" ",X) || FI_Strasse LF;
  1718.                         Z.4  = Copies(" ",X) || FI_PLZ FI_Ort LF LF LF LF;
  1719.                         Z.5  = Copies(" ",X) || D_SKlein || D_UEin || FI_Vorname FI_Name "*" FI_Strasse "*" FI_PLZ FI_Ort || D_UAus || D_SStand || LF;
  1720.                         Z.6  = Copies(" ",X) || KD_Anrede.ZW_KundenNr;
  1721.                         Z.7  = Copies(" ",X) || KD_VorName.ZW_KundenNr KD_Name.ZW_KundenNr;
  1722.                         Z.8  = Copies(" ",X) || KD_Strasse.ZW_KundenNr LF;
  1723.                         Z.9  = Copies(" ",X) || KD_PLZ.ZW_KundenNr KD_Ort.ZW_KundenNr
  1724.                         IF FI_Land ~= KD_Land.ZW_KundenNr THEN
  1725.                             Z.9 = Z.9 || "   (" || KD_Land.ZW_KundenNr || ")";
  1726.                         Z.9  = Z.9 || LF || LF || LF || LF || LF;
  1727.                         Z.10 = Copies(" ",X) || "Kundennr:" ZW_KundenNr;
  1728.                         Z.11 = Copies(" ",X) || "Betreff Rechnung" UEB_RechNr "vom" RE_Datum.UEB_RechNr || LF || LF || LF;
  1729.                         Z.12 = Copies(" ",X) || KD_BAnr.ZW_KundenNr || LF;
  1730.                         SELECT
  1731.                             WHEN MahnNr = 1 THEN
  1732.                                 DO;
  1733.                                     ZW_SumPMahn = ZW_Endsumme + 1.50;
  1734.                                     Z.13 = Copies(" ",X) || "leider  muß ich  Ihnen mitteilen,  daß Sie meine  Rechnung" UEB_RechNr "vom";
  1735.                                     Z.14 = Copies(" ",X) || RE_Datum.UEB_RechNr "bisher  noch nicht bezahlt  haben.  Ich möchte Sie deshalb";
  1736.                                     Z.15 = Copies(" ",X) || "bitten, dieses Versäumnis nachzuholen und den ausstehenden Betrag von";
  1737.                                     Z.16 = Copies(" ",X) || right(ZW_Endsumme,9) "DM  +  1.50 DM  Mahngebühr  (Gesamt:" right(ZW_SumPMahn,9) || "DM)  auf mein";
  1738.                                     Z.17 = Copies(" ",X) || "Konto zu überweisen.";
  1739.                                     Z.18 = LF;
  1740.                                 END;
  1741.                             WHEN MahnNr = 2 THEN
  1742.                                 DO;
  1743.                                     ZW_SumPMahn = ZW_Endsumme + 3.00;
  1744.                                     Z.13 = Copies(" ",X) || "leider  muß ich  Ihnen mitteilen,  daß Sie meine  Rechnung" UEB_RechNr "vom";
  1745.                                     Z.14 = Copies(" ",X) || RE_Datum.UEB_RechNr "trotz nochmaliger Aufforderung  bisher  noch nicht bezahlt";
  1746.                                     Z.15 = Copies(" ",X) || "haben. Ich möchte Sie deshalb nachdrücklich dazu auffordern, Ihr Ver-";
  1747.                                     Z.16 = Copies(" ",X) || "säumnis nachzuholen  und den  ausstehenden Betrag von " right(ZW_Endsumme,9) "DM +";
  1748.                                     Z.17 = Copies(" ",X) || "3.00 DM Mahngebühr  (Gesamt:" right(ZW_SumPMahn,9) || ") auf mein Konto zu überweisen!";
  1749.                                     Z.18 = LF;
  1750.                                 END;
  1751.                             WHEN MahnNr = 3 THEN
  1752.                                 DO;
  1753.                                     ZW_SumPMahn = ZW_Endsumme + 4.50;
  1754.                                     Z.13 = Copies(" ",X) || "trotz zweier Mahnungen haben Sie meine Rechnung" UEB_RechNr "vom" RE_Datum.UEB_RechNr;
  1755.                                     Z.14 = Copies(" ",X) || "nicht überwiesen!  Dies ist meine letzte Aufforderung, Ihr Versäumnis";
  1756.                                     Z.15 = Copies(" ",X) || "nachzuholen  und den ausstehenden Betrag von " right(ZW_Endsumme,9) "DM +  4.50 DM";
  1757.                                     Z.16 = Copies(" ",X) || "Mahngebühr (Gesamt:" right(ZW_SumPMahn,9) || ") auf mein Konto zu überweisen!";
  1758.                                     Z.17 = Copies(" ",X) || "Wenn Sie meiner  Aufforderung nicht  nachkommen,  behalte ich mir ge-";
  1759.                                     Z.18 = Copies(" ",X) || "richtliche Schritte vor." || LF || LF;
  1760.                                 END;
  1761.                             OTHERWISE
  1762.                                 NOP;
  1763.                         END;
  1764.                         Z.19 = Copies(" ",X) || "Bankverbindung:";
  1765.                         Z.20 = Copies(" ",X) || FI_BankBez "  BLZ:" FI_BLZ "  Konto:" FI_Konto LF;
  1766.                         Z.21 = Copies(" ",X) || "Mit freundlichen Grüßen" || LF || LF || LF;
  1767.                         Z.22 = Copies(" ",X) || FI_VorName FI_Name D_Ende;
  1768.                         Druckdat = "Mahnung";
  1769.                         OPEN(Druckdat,Druckfile,'write');
  1770.                         DO i = 1 to 22;
  1771.                             WRITELN(Druckdat,Z.i);
  1772.                         END;
  1773.                         CLOSE(Druckdat);
  1774.                         IF Druckart = "Drucker" THEN
  1775.                             address COMMAND "run >NIL: copy t:Druck to" Druckport;
  1776.                     END;
  1777.             END;
  1778.         WHEN msgid3 = 19 | msgcode3 = 69 | msgcode3 = 101 THEN
  1779.             DO;
  1780.                 IF Druckart = "Drucker" THEN
  1781.                     DO;
  1782.                         Druckfile = "t:Druck"
  1783.                         Ergebnis = rtezrequest("Bitte Etiketten einlegen" LF ||,
  1784.                                                         "Firmen oder Kundenetiketten?",
  1785.                                                         ,"Firma|Kunde|Abbruch",,ReqCent);
  1786.                     END;
  1787.                 ELSE
  1788.                     DO;
  1789.                         Druckfile = Druckverz || "Etiketten." || ZW_KundenNr;
  1790.                         Ergebnis = rtezrequest("Speichere Druck in" Druckfile LF ||,
  1791.                                                         "Firmen oder Kundenetiketten?",
  1792.                                                         ,"Firma|Kunde|Abbruch",,ReqCent);
  1793.                     END;
  1794.                 IF Ergebnis = 1 then
  1795.                     DO;
  1796.                         Z.1 = LF Fi_Anrede;
  1797.                         Z.2 = "" FI_VorName FI_Name;
  1798.                         Z.3 = "" FI_Strasse;
  1799.                         Z.4 = LF FI_PLZ FI_Ort;
  1800.                         Z.5 = LF LF;
  1801.                     END;
  1802.                 IF Ergebnis = 2 then
  1803.                     DO;
  1804.                         Z.1 = LF KD_Anrede.ZW_KundenNr;
  1805.                         Z.2 = "" KD_VorName.ZW_KundenNr KD_Name.ZW_KundenNr;
  1806.                         Z.3 = "" KD_Strasse.ZW_KundenNr;
  1807.                         Z.4 = LF KD_PLZ.ZW_KundenNr KD_Ort.ZW_KundenNr;
  1808.                         IF FI_Land = KD_Land.ZW_KundenNr THEN
  1809.                             Z.5 = LF LF;
  1810.                         ELSE
  1811.                             Z.5 = " (" || KD_Land.ZW_KundenNr || ")" LF LF;
  1812.                     END;
  1813.                 IF Ergebnis > 0 then
  1814.                     DO;
  1815.                         Anzahl = rtgetlong(, , "Wieviel Etiketten wollen Sie drucken:", , ,"rtgl_min = 1 rtgl_max = 999");
  1816.                         Druckdat = "Etikett";
  1817.                         OPEN(Druckdat,Druckfile,'write');
  1818.                         WRITELN(Druckdat,D_Rueck);
  1819.                         DO j = 1 to Anzahl;
  1820.                             DO i = 1 to 5;
  1821.                                 WRITELN(Druckdat,Z.i);
  1822.                             END;
  1823.                         END;
  1824.                         WRITELN(Druckdat,D_Ende);
  1825.                         CLOSE(Druckdat);
  1826.                         IF Druckart = "Drucker" THEN
  1827.                             address COMMAND "run >NIL: copy t:Druck to" Druckport;
  1828.                     END;
  1829.             END;
  1830.         WHEN msgid3 = 20 | msgcode3 = 85 | msgcode3 = 117 THEN
  1831.             DO;
  1832.                 IF Druckart = "Drucker" THEN
  1833.                     DO;
  1834.                         Druckfile = "t:Druck"
  1835.                         Ergebnis = rtezrequest("Bitte Umschlag einlegen." LF ||,
  1836.                                                         "Welches Format wünschen Sie?",
  1837.                                                         ,"C6/B6|DL|Abbruch",,ReqCent);
  1838.                     END;
  1839.                 ELSE
  1840.                     DO;
  1841.                         Druckfile = Druckverz || "Umschläge." || ZW_KundenNr;
  1842.                         Ergebnis = rtezrequest("Speichere Druck in" Druckfile LF ||,
  1843.                                                         "Welches Format wünschen Sie?",
  1844.                                                         ,"C6/B6|DL|Abbruch",,ReqCent);
  1845.                     END;
  1846.                 IF Ergebnis > 0 then
  1847.                     DO;
  1848.                         Z.1    = D_Rueck
  1849.                         IF D_YAbst < 2 THEN
  1850.                             DO I = D_YAbst TO 2;
  1851.                                 Z.1 = Z.1 || LF;
  1852.                             END;
  1853.                         X = 3-D_XAbst;
  1854.                         IF X < 0 THEN
  1855.                             X = 0;
  1856.                         SELECT
  1857.                             WHEN Ergebnis = 1 then
  1858.                                 Breite = 22+X;
  1859.                             WHEN Ergebnis = 2 then
  1860.                                 Breite = 31+X;
  1861.                             OTHERWISE
  1862.                                 NOP;
  1863.                         END;
  1864.                         Z.1 = Z.1 || Copies(" ",X) || Fi_Anrede;
  1865.                         Z.2 = Copies(" ",X) || FI_VorName FI_Name;
  1866.                         Z.3 = Copies(" ",X) || FI_Strasse LF;
  1867.                         Z.4 = Copies(" ",X) || FI_PLZ FI_Ort LF LF LF LF LF LF;
  1868.                         Z.5 = Copies(" ",Breite) KD_Anrede.ZW_KundenNr ;
  1869.                         Z.6 = Copies(" ",Breite) KD_VorName.ZW_KundenNr KD_Name.ZW_KundenNr;
  1870.                         Z.7 = Copies(" ",Breite) KD_Strasse.ZW_KundenNr LF;
  1871.                         Z.8 = Copies(" ",Breite) KD_PLZ.ZW_KundenNr KD_Ort.ZW_KundenNr;
  1872.                         IF FI_Land ~= KD_Land.ZW_KundenNr THEN
  1873.                             Z.8 = Z.8 "(" || KD_Land.ZW_KundenNr || ")";
  1874.                         Z.8 = Z.8 || D_Ende;
  1875.                         Druckdat = "Umschlag";
  1876.                         OPEN(Druckdat,Druckfile,'write');
  1877.                         DO i = 1 to 8;
  1878.                             WRITELN(Druckdat,Z.i);
  1879.                         END;
  1880.                         CLOSE(Druckdat);
  1881.                         IF Druckart = "Drucker" THEN
  1882.                             address COMMAND "run >NIL: copy t:Druck to" Druckport;
  1883.                     END;
  1884.             END;
  1885.         WHEN msgid3 = 21 | msgcode3 = 76 | msgcode3 = 108 THEN
  1886.             DO;
  1887.                 IF Druckart = "Drucker" THEN
  1888.                     DO;
  1889.                         Druckfile = "t:Druck"
  1890.                         Ergebnis = rtezrequest("Bitte leeres Blatt einlegen","OK|Abbruch",,ReqCent);
  1891.                     END;
  1892.                 ELSE
  1893.                     DO;
  1894.                         Druckfile = Druckverz || "Artikelliste";
  1895.                         Ergebnis = rtezrequest("Speichere Druck in" Druckfile,"OK|Abbruch",,ReqCent);
  1896.                     END;
  1897.                 IF Ergebnis > 0 then
  1898.                     DO;
  1899.                         Druckdat = "Artikel"
  1900.                         OPEN(Druckdat,Druckfile,'write');
  1901.                         Z.6 = "ArtNr  Artikelbezeichnung                 Preis MWSt Buchk."
  1902.                         Z.7 = Copies("-",59);
  1903.                         WRITELN(Druckdat,D_Rueck || Z.6);
  1904.                         WRITELN(Druckdat,Z.7);
  1905.                         Zeile = 3;
  1906.                         Z.6 = FF || Z.6;
  1907.                         DO j = 1 to (A_max - 1)
  1908.                             j = right("000000" || j,6);
  1909.                             Z.1 = j left(AR_ArtBez.j,30) right(AR_ArtPreis.j,9) right(Ar_ArtMWSt.j,4) right(AR_ArtBuch.j,6);
  1910.                             Zeile = Zeile + 1;
  1911.                             IF Zeile > B_laenge THEN
  1912.                                 DO;
  1913.                                     WRITELN(Druckdat,Z.6);
  1914.                                     WRITELN(Druckdat,Z.7);
  1915.                                     Zeile = 3;
  1916.                                 END;
  1917.                             WRITELN(Druckdat,Z.1);
  1918.                         END;
  1919.                         Z.1 = LF || "Ende der Auflistung" D_Ende;
  1920.                         WRITELN(Druckdat,Z.1);
  1921.                         CLOSE(Druckdat);
  1922.                         IF Druckart = "Drucker" THEN
  1923.                             address COMMAND "run copy >NIL: t:Druck to" Druckport;
  1924.                     END;
  1925.             END;
  1926.         WHEN msgid3 = 22 | msgcode3 = 83 | msgcode3 = 115 THEN
  1927.             DO;
  1928.                 IF Druckart = "Drucker" THEN
  1929.                     DO;
  1930.                         Druckfile = "t:Druck"
  1931.                         Ergebnis = rtezrequest("Bitte leeres Blatt einlegen","OK|Abbruch",,ReqCent);
  1932.                     END;
  1933.                 ELSE
  1934.                     DO;
  1935.                         Druckfile = Druckverz || "Kundenliste";
  1936.                         Ergebnis = rtezrequest("Speichere Druck in" Druckfile,"OK|Abbruch",,ReqCent);
  1937.                     END;
  1938.                 IF Ergebnis > 0 then
  1939.                     DO;
  1940.                         Druckdat = "Kunden"
  1941.                         OPEN(Druckdat,Druckfile,'write');
  1942.                         Z.6 = "Kunde  Vorname    Name       Straße               PLZ   Ort"
  1943.                         Z.7 = Copies("-",71);
  1944.                         WRITELN(Druckdat,D_Rueck || Z.6);
  1945.                         WRITELN(Druckdat,Z.7);
  1946.                         Zeile = 3;
  1947.                         Z.6 = FF || Z.6;
  1948.                         DO j = 1 to (K_max - 1);
  1949.                             j = "000000" || j;
  1950.                             j = right(j,6);
  1951.                             Z.1 = j left(KD_Vorname.j,10) left(KD_Name.j,10) left(KD_Strasse.j,20) left(KD_PLZ.j,5) left(KD_Ort.j,15);
  1952.                             Zeile = Zeile + 1;
  1953.                             IF Zeile > B_laenge THEN
  1954.                                 DO;
  1955.                                     WRITELN(Druckdat,Z.6);
  1956.                                     WRITELN(Druckdat,Z.7);
  1957.                                     Zeile = 3;
  1958.                                 END;
  1959.                             WRITELN(Druckdat,Z.1);
  1960.                         END;
  1961.                         Z.1 = LF || "Ende der Auflistung" D_Ende;
  1962.                         WRITELN(Druckdat,Z.1);
  1963.                         CLOSE(Druckdat);
  1964.                         IF Druckart = "Drucker" THEN
  1965.                             address COMMAND "run >NIL: copy t:Druck to" Druckport
  1966.                     END;
  1967.             END;
  1968.         WHEN msgid3 = 23 | msgcode3 = 65 | msgcode3 = 97 THEN
  1969.             DO;
  1970.                 jahr = rtgetlong(, , "Für welches Jahr soll gedruckt werden :", , ,"rtgl_min = 1 rtgl_may = 9999");
  1971.                 IF Druckart = "Drucker" THEN
  1972.                     DO;
  1973.                         Druckfile = "t:Druck"
  1974.                         Ergebnis = rtezrequest("Bitte leeres Blatt einlegen","OK|Abbruch",,ReqCent);
  1975.                     END;
  1976.                 ELSE
  1977.                     DO;
  1978.                         Druckfile = Druckverz || "Einnahmen." || jahr;
  1979.                         Ergebnis = rtezrequest("Speichere Druck in" Druckfile,"OK|Abbruch",,ReqCent);
  1980.                     END;
  1981.                 IF Ergebnis > 0 then
  1982.                     DO;
  1983.                         Z.6    = "Re.Nr  Datum      Ku.Nr  Art.Nr Anzahl     E.Preis       Summe    Endsumme"
  1984.                         Z.7    = Copies("-",74);
  1985.                         jahr_l    = LENGTH(jahr);
  1986.                         Endsumme    = 0;
  1987.                         MWSt        = 0;
  1988.                         Druckdat    = "Einnahmen";
  1989.                         OPEN(Druckdat,Druckfile,'write');
  1990.                         WRITELN(Druckdat,D_Rueck || Z.6);
  1991.                         WRITELN(Druckdat,Z.7);
  1992.                         Zeile = 3;
  1993.                         Z.6 = FF || Z.6;
  1994.                         DO k = 1 to (R_max - 1);
  1995.                             l = right("000000" || k,6);
  1996.                             IF jahr = right(RE_Datum.l,jahr_l) THEN
  1997.                                 DO;
  1998.                                     UEB_RechNr = l;
  1999.                                     CALL UP_R_Berechnung;
  2000.                                     Z.1 = l RE_Datum.l RE_Kunde.l RE_Art.1.l right(RE_Anz.1.l,6) right(ZW_Epreis.1,11) right(ZW_Summe.1,11);
  2001.                                     ZEILE = ZEILE + 1;
  2002.                                     IF Zeile > B_laenge THEN
  2003.                                         DO;
  2004.                                             WRITELN(Druckdat,Z.6);
  2005.                                             WRITELN(Druckdat,Z.7);
  2006.                                             Zeile = 3;
  2007.                                         END;
  2008.                                     WRITELN(Druckdat,Z.1);
  2009.                                     DO i = 2 TO 12;
  2010.                                         IF RE_Anz.i.l > 0 THEN
  2011.                                             DO;
  2012.                                                 Z.1 = Copies(" ",24) RE_Art.i.l right(RE_Anz.i.l,6) right(ZW_Epreis.i,11) right(ZW_Summe.i,11);
  2013.                                                 ZEILE = ZEILE + 1;
  2014.                                                 IF Zeile > B_laenge THEN
  2015.                                                     DO;
  2016.                                                         WRITELN(Druckdat,Z.6);
  2017.                                                         WRITELN(Druckdat,Z.7);
  2018.                                                         Zeile = 3;
  2019.                                                     END;
  2020.                                                 WRITELN(Druckdat,Z.1);
  2021.                                             END;
  2022.                                     END;
  2023.                                     Z.1 = Copies(" ",24) right(RE_Art.13.l,6) right(RE_Anz.13.l,6) right(ZW_Epreis.13,11) right(ZW_Summe.13,11) right(ZW_Endsumme,11) LF;
  2024.                                     ZEILE = ZEILE + 2;
  2025.                                     IF Zeile > B_laenge THEN
  2026.                                         DO;
  2027.                                             WRITELN(Druckdat,Z.6);
  2028.                                             WRITELN(Druckdat,Z.7);
  2029.                                             Zeile = 3;
  2030.                                         END;
  2031.                                     WRITELN(Druckdat,Z.1);
  2032.                                     Endsumme    = Endsumme    + ZW_Endsumme;
  2033.                                     MWSt        = MWSt        + ZW_MWSt;
  2034.                                     ENetto    = Endsumme    - MWSt;
  2035.                                 END;
  2036.                         END;
  2037.                         Z.1 = Copies("-",74);
  2038.                         Z.2 = "Endsumme (Netto)  =" Copies(" ",38) right(ENetto,15);
  2039.                         Z.3 = "Mehrwertsteuer    =" Copies(" ",38) right(MWSt,15);
  2040.                         Z.4 = "Endsumme (Brutto) =" Copies(" ",38) right(Endsumme,15);
  2041.                         Z.5 = Copies("=",74) D_Ende;
  2042.                         IF Zeile > (B_laenge - 5) THEN
  2043.                             DO;
  2044.                                 WRITELN(Druckdat,Z.6);
  2045.                                 WRITELN(Druckdat,Z.7);
  2046.                                 Zeile = 3;
  2047.                             END;
  2048.                         DO i = 1 TO 5;
  2049.                             WRITELN(Druckdat,Z.i);
  2050.                         END;
  2051.                         CLOSE(Druckdat);
  2052.                         IF Druckart = "Drucker" THEN
  2053.                             address COMMAND "run >NIL: copy t:Druck to" Druckport;
  2054.                     END;
  2055.             END;
  2056.         WHEN msgclass3 = CLOSEWINDOW | msgcode3 = 27 THEN
  2057.             extime3 = 1;
  2058.         OTHERWISE
  2059.             NOP;
  2060.     END;
  2061. RETURN 1;
  2062.  
  2063. Auswertung4:
  2064.     SELECT
  2065.         WHEN msgcode4    = 86 | msgcode4 = 118 THEN
  2066.             ACTIVATEGADID(10,w4,null());
  2067.         WHEN msgid4        = 10 THEN
  2068.             ZW_VorName    = GETSTRGAD(w4,10,null());
  2069.         WHEN msgcode4    = 78 | msgcode4 = 110 THEN
  2070.             ACTIVATEGADID(11,w4,null());
  2071.         WHEN msgid4        = 11 THEN
  2072.             ZW_Name     = GETSTRGAD(w4,11,null());
  2073.         WHEN msgcode4    = 83 | msgcode4 = 115 THEN
  2074.             ACTIVATEGADID(12,w4,null());
  2075.         WHEN msgid4        = 12 THEN
  2076.             ZW_Strasse    = GETSTRGAD(w4,12,null());
  2077.         WHEN msgcode4    = 80 | msgcode4 = 112 THEN
  2078.             ACTIVATEGADID(13,w4,null());
  2079.         WHEN msgid4        = 13 THEN
  2080.             ZW_PLZ        = GETSTRGAD(w4,13,null());
  2081.         WHEN msgcode4    = 79 | msgcode4 = 111 THEN
  2082.             ACTIVATEGADID(14,w4,null());
  2083.         WHEN msgid4        = 14 THEN
  2084.             ZW_Ort        = GETSTRGAD(w4,14,null());
  2085.         WHEN msgcode4    = 76 | msgcode4 = 108 THEN
  2086.             ACTIVATEGADID(15,w4,null());
  2087.         WHEN msgid4        = 15 THEN
  2088.             ZW_Land        = GETSTRGAD(w4,15,null());
  2089.         WHEN msgcode4    = 71 | msgcode4 = 103 THEN
  2090.             ACTIVATEGADID(16,w4,null());
  2091.         WHEN msgid4        = 16 THEN
  2092.             ZW_GebTag    = GETSTRGAD(w4,16,null());
  2093.         WHEN msgcode4    = 84 | msgcode4 = 116 THEN
  2094.             ACTIVATEGADID(17,w4,null());
  2095.         WHEN msgid4        = 17 THEN
  2096.             ZW_Tel        = GETSTRGAD(w4,17,null());
  2097.         WHEN msgcode4    = 70 | msgcode4 = 102 THEN
  2098.             ACTIVATEGADID(18,w4,null());
  2099.         WHEN msgid4        = 18 THEN
  2100.             ZW_Fax        = GETSTRGAD(w4,18,null());
  2101.         WHEN msgcode4    = 220 | msgcode4 = 252 THEN
  2102.             ACTIVATEGADID(19,w4,null());
  2103.         WHEN msgid4        = 19 THEN
  2104.             ZW_Dfue        = GETSTRGAD(w4,19,null());
  2105.         WHEN msgcode4    = 49 THEN
  2106.             ACTIVATEGADID(20,w4,null());
  2107.         WHEN msgid4        = 20 THEN
  2108.             ZW_EMail1    = GETSTRGAD(w4,20,null());
  2109.         WHEN msgcode4    = 50 THEN
  2110.             ACTIVATEGADID(21,w4,null());
  2111.         WHEN msgid4        = 21 THEN
  2112.             ZW_EMail2    = GETSTRGAD(w4,21,null());
  2113.         WHEN msgcode4    = 51 THEN
  2114.             ACTIVATEGADID(22,w4,null());
  2115.         WHEN msgid4        = 22 THEN
  2116.             ZW_EMail3    = GETSTRGAD(w4,22,null());
  2117.         WHEN msgcode4    = 65 | msgcode4 = 97 THEN
  2118.             ACTIVATEGADID(23,w4,null());
  2119.         WHEN msgid4        = 23 THEN
  2120.             ZW_Anrede    = GETSTRGAD(w4,23,null());
  2121.         WHEN msgcode4    = 66 | msgcode4 = 98 THEN
  2122.             ACTIVATEGADID(24,w4,null());
  2123.         WHEN msgid4        = 24 THEN
  2124.             ZW_BAnr        = GETSTRGAD(w4,24,null());
  2125.         WHEN msgcode4    = 75 | msgcode4 = 107 THEN
  2126.             ACTIVATEGADID(25,w4,null());
  2127.         WHEN msgid4        = 25 THEN
  2128.             ZW_Komm        = GETSTRGAD(w4,25,null());
  2129.         WHEN msgcode4    = 46 | msgcode4 = 58 THEN
  2130.             ACTIVATEGADID(26,w4,null());
  2131.         WHEN msgid4        = 26 THEN
  2132.             ZW_BankBez    = GETSTRGAD(w4,26,null());
  2133.         WHEN msgcode4    = 90 | msgcode4 = 122 THEN
  2134.             ACTIVATEGADID(27,w4,null());
  2135.         WHEN msgid4        = 27 THEN
  2136.             ZW_BLZ        = GETSTRGAD(w4,27,null());
  2137.         WHEN msgcode4    = 42 | msgcode4 = 43 THEN
  2138.             ACTIVATEGADID(28,w4,null());
  2139.         WHEN msgid4 = 28 THEN
  2140.             ZW_Konto        = GETSTRGAD(w4,28,null());
  2141.         WHEN msgcode4    = 85 | msgcode4 = 117 THEN
  2142.             ACTIVATEGADID(29,w4,null());
  2143.         WHEN msgid4        = 29 THEN
  2144.             ZW_BankKurz = GETSTRGAD(w4,29,null());
  2145.         WHEN msgcode4    = 82 | msgcode4 = 114 THEN
  2146.             ACTIVATEGADID(30,w4,null());
  2147.         WHEN msgid4 = 30 THEN
  2148.             ZW_Rabatt   = GETSTRGAD(w4,30,null());
  2149.         WHEN msgid4 = 40 | msgcode4 = 73 | msgcode4 = 105 THEN
  2150.             DO;
  2151.                 CALL UP_Kunde_OK;
  2152.                 Druckart = GETVALUE(mlabels2,msgcode4*4,4,'s');
  2153.                 SELECT;
  2154.                     WHEN Druckart = "Firma" THEN
  2155.                         DO;
  2156.                             CALL OffGadget(41,w4,null());
  2157.                             CALL OffGadget(42,w4,null());
  2158.                             CALL OffGadget(43,w4,null());
  2159.                             CALL OffGadget(44,w4,null());
  2160.                             CALL OffGadget(45,w4,null());
  2161.                             CALL UP_Firma_alles;
  2162.                             CALL UP_ReErst_fuellen;
  2163.                         END;
  2164.                     WHEN Druckart = "Kunden" THEN
  2165.                         DO;
  2166.                             CALL OnGadget(41,w4,null());
  2167.                             CALL OnGadget(42,w4,null());
  2168.                             CALL OnGadget(43,w4,null());
  2169.                             CALL OnGadget(44,w4,null());
  2170.                             CALL OnGadget(45,w4,null());
  2171.                             CALL UP_Kunden_alles;
  2172.                             CALL UP_ReErst_fuellen;
  2173.                         END;
  2174.                     OTHERWISE
  2175.                         NOP;
  2176.                 END;
  2177.             END;
  2178.         WHEN msgcode4 = 72 | msgcode4 = 104 THEN
  2179.             ACTIVATEGADID(41,w4,null());
  2180.         WHEN msgid4 = 41 THEN
  2181.             DO;
  2182.                 Test = GETSTRGAD(w4,41,null());
  2183.                 IF Test = ZW_Suchen | Druckart = "Firma" THEN
  2184.                     NOP;
  2185.                 ELSE IF Test = "" THEN
  2186.                     ZW_Suchen = "";
  2187.                 ELSE
  2188.                     DO;
  2189.                         CALL UP_Kunde_OK;
  2190.                         j = LENGTH(Test);
  2191.                         x = "Nein";
  2192.                         Test = UPPER(Test);
  2193.                         DO I = 1 TO K_max;
  2194.                             I = right("000000" || I,6);
  2195.                             IF POS(Test,UPPER(KD_VorName.I)),
  2196.                                 + POS(Test,UPPER(KD_Name.I)),
  2197.                                 + POS(Test,UPPER(KD_Strasse.I)),
  2198.                                 + POS(Test,UPPER(KD_PLZ.I)),
  2199.                                 + POS(Test,UPPER(KD_Ort.I)),
  2200.                                 + POS(Test,UPPER(KD_Land.I)),
  2201.                                 + POS(Test,UPPER(KD_GebTag.I)),
  2202.                                 + POS(Test,UPPER(KD_Tel.I)),
  2203.                                 + POS(Test,UPPER(KD_Fax.I)),
  2204.                                 + POS(Test,UPPER(KD_Dfue.I)),
  2205.                                 + POS(Test,UPPER(KD_EMail1.I)),
  2206.                                 + POS(Test,UPPER(KD_EMail2.I)),
  2207.                                 + POS(Test,UPPER(KD_EMail3.I)),
  2208.                                 + POS(Test,UPPER(KD_Anrede.I)),
  2209.                                 + POS(Test,UPPER(KD_BAnr.I)),
  2210.                                 + POS(Test,UPPER(KD_Komm.I)),
  2211.                                 + POS(Test,UPPER(KD_BankBez.I)),
  2212.                                 + POS(Test,UPPER(KD_BLZ.I)),
  2213.                                 + POS(Test,UPPER(KD_Konto.I)),
  2214.                                 + POS(Test,UPPER(KD_BankKurz.I)) > 0 THEN
  2215.                                 DO;
  2216.                                     x = I;
  2217.                                     I = K_max;
  2218.                                 END;
  2219.                         END;
  2220.                         ZW_Suchen = Test;
  2221.                         IF x = "Nein" THEN
  2222.                             rtezrequest("Der Begriff konnte nicht gefunden werden",,,ReqCent);
  2223.                         ELSE
  2224.                             DO;
  2225.                                 ZW_KundenNr = x;
  2226.                                 CALL UP_Kunden_alles;
  2227.                                 CALL UP_ReErst_fuellen;
  2228.                             END;
  2229.                     END;
  2230.             END;
  2231.         WHEN msgcode4 = 47 | msgcode4 = 55 THEN
  2232.             ACTIVATEGADID(43,w4,null());
  2233.         WHEN msgid4 = 42 | msgcode4 = 67 | msgcode4 = 99 THEN
  2234.             IF ZW_Tel > "" THEN
  2235.                 DO;
  2236.                     rtezrequest("ARexx Port von WilhelmTEL fehlt leider noch!",,,ReqCent);
  2237.                 END;
  2238.             ELSE
  2239.                 rtezrequest("Nö, ohne Telefonnummer geht hier nix!",,,ReqCent);
  2240.         WHEN msgid4 = 43 THEN
  2241.             DO;
  2242.                 Test = GETSTRGAD(w4,43,null());
  2243.                 IF Test = ZW_KundenNr | Druckart = "Firma" THEN
  2244.                     NOP;
  2245.                 ELSE
  2246.                     DO;
  2247.                         CALL UP_Kunde_OK;
  2248.                         ZW_KundenNr = right("000000" || TEST,6)
  2249.                         IF DATATYPE(ZW_KundenNr,'n') THEN
  2250.                             DO;
  2251.                                 IF ZW_KundenNr > K_max  THEN
  2252.                                     ZW_KundenNr = K_max;
  2253.                                 ZW_KundenNr = RIGHT("000000" || ZW_KundenNr,6);
  2254.                             END;
  2255.                         ELSE
  2256.                             DO;
  2257.                                 rtezrequest("Kundennummer nicht numerisch, bitte prüfen!",,,ReqCent);
  2258.                                 ZW_KundenNr = "000001";
  2259.                             END;
  2260.                         CALL UP_Kunden_alles;
  2261.                         CALL UP_ReErst_fuellen;
  2262.                     END;
  2263.             END;
  2264.         WHEN msgid4 = 44 | msgcode4 = 62 THEN
  2265.             DO;
  2266.                 IF Druckart = "Firma" THEN
  2267.                     NOP;
  2268.                 ELSE
  2269.                     DO;
  2270.                         IF ZW_Suchen = "" THEN
  2271.                             DO;
  2272.                                 Test = ZW_KundenNr + 1;
  2273.                                 CALL UP_Kunde_OK;
  2274.                                 ZW_KundenNr = right("000000" || Test,6);
  2275.                                 IF ZW_KundenNr > K_max THEN
  2276.                                     ZW_KundenNr = K_max;
  2277.                                 ELSE
  2278.                                     DO;
  2279.                                         CALL UP_Kunden_alles;
  2280.                                         CALL UP_ReErst_fuellen;
  2281.                                     END;
  2282.                             END;
  2283.                         ELSE
  2284.                             DO;
  2285.                                 x = "Nein";
  2286.                                 DO I = (ZW_KundenNr + 1) TO (K_max-1);
  2287.                                 I = right("000000" || I,6);
  2288.                                 ZW_Suchen = UPPER(ZW_Suchen);
  2289.                                 IF POS(ZW_Suchen,UPPER(KD_VorName.I)),
  2290.                                     + POS(ZW_Suchen,UPPER(KD_Name.I)),
  2291.                                     + POS(ZW_Suchen,UPPER(KD_Strasse.I)),
  2292.                                     + POS(ZW_Suchen,UPPER(KD_PLZ.I)),
  2293.                                     + POS(ZW_Suchen,UPPER(KD_Ort.I)),
  2294.                                     + POS(ZW_Suchen,UPPER(KD_Land.I)),
  2295.                                     + POS(ZW_Suchen,UPPER(KD_GebTag.I)),
  2296.                                     + POS(ZW_Suchen,UPPER(KD_Tel.I)),
  2297.                                     + POS(ZW_Suchen,UPPER(KD_Fax.I)),
  2298.                                     + POS(ZW_Suchen,UPPER(KD_Dfue.I)),
  2299.                                     + POS(ZW_Suchen,UPPER(KD_EMail1.I)),
  2300.                                     + POS(ZW_Suchen,UPPER(KD_EMail2.I)),
  2301.                                     + POS(ZW_Suchen,UPPER(KD_EMail3.I)),
  2302.                                     + POS(ZW_Suchen,UPPER(KD_Anrede.I)),
  2303.                                     + POS(ZW_Suchen,UPPER(KD_BAnr.I)),
  2304.                                     + POS(ZW_Suchen,UPPER(KD_Komm.I)),
  2305.                                     + POS(ZW_Suchen,UPPER(KD_BankBez.I)),
  2306.                                     + POS(ZW_Suchen,UPPER(KD_BLZ.I)),
  2307.                                     + POS(ZW_Suchen,UPPER(KD_Konto.I)),
  2308.                                     + POS(ZW_Suchen,UPPER(KD_BankKurz.I)) > 0 THEN
  2309.                                     DO;
  2310.                                         x = I;
  2311.                                         I = K_max;
  2312.                                     END;
  2313.                             END;
  2314.                             IF x = "Nein" THEN
  2315.                                 rtezrequest("Der Begriff konnte nicht nochmal gefunden werden",,,ReqCent);
  2316.                             ELSE
  2317.                                 DO;
  2318.                                     ZW_KundenNr = x;
  2319.                                     CALL UP_Kunden_alles;
  2320.                                     CALL UP_ReErst_fuellen;
  2321.                                 END;
  2322.                         END;
  2323.                END;
  2324.             END;
  2325.         WHEN msgid4 = 45 | msgcode4 = 60 THEN
  2326.             DO;
  2327.                 IF Druckart = "Firma" THEN
  2328.                     NOP;
  2329.                 ELSE
  2330.                     DO;
  2331.                         IF ZW_Suchen = "" THEN
  2332.                             DO;
  2333.                                 Test = ZW_KundenNr - 1;
  2334.                                 CALL UP_Kunde_OK;
  2335.                                 ZW_KundenNr = right("000000" || Test,6);
  2336.                                 IF ZW_KundenNr < 000001 THEN
  2337.                                     ZW_KundenNr = "000001";
  2338.                                 ELSE
  2339.                                     DO;
  2340.                                         CALL UP_Kunden_alles;
  2341.                                         CALL UP_ReErst_fuellen;
  2342.                                     END;
  2343.                             END;
  2344.                         ELSE
  2345.                             DO;
  2346.                                 x = "Nein";
  2347.                                 DO I = (ZW_KundenNr - 1) TO 1 BY -1;
  2348.                                     I = right("000000" || I,6);
  2349.                                     ZW_Suchen = UPPER(ZW_Suchen);
  2350.                                     IF POS(ZW_Suchen,UPPER(KD_VorName.I)),
  2351.                                         + POS(ZW_Suchen,UPPER(KD_Name.I)),
  2352.                                         + POS(ZW_Suchen,UPPER(KD_Strasse.I)),
  2353.                                         + POS(ZW_Suchen,UPPER(KD_PLZ.I)),
  2354.                                         + POS(ZW_Suchen,UPPER(KD_Ort.I)),
  2355.                                         + POS(ZW_Suchen,UPPER(KD_Land.I)),
  2356.                                         + POS(ZW_Suchen,UPPER(KD_GebTag.I)),
  2357.                                         + POS(ZW_Suchen,UPPER(KD_Tel.I)),
  2358.                                         + POS(ZW_Suchen,UPPER(KD_Fax.I)),
  2359.                                         + POS(ZW_Suchen,UPPER(KD_Dfue.I)),
  2360.                                         + POS(ZW_Suchen,UPPER(KD_EMail1.I)),
  2361.                                         + POS(ZW_Suchen,UPPER(KD_EMail2.I)),
  2362.                                         + POS(ZW_Suchen,UPPER(KD_EMail3.I)),
  2363.                                         + POS(ZW_Suchen,UPPER(KD_Anrede.I)),
  2364.                                         + POS(ZW_Suchen,UPPER(KD_BAnr.I)),
  2365.                                         + POS(ZW_Suchen,UPPER(KD_Komm.I)),
  2366.                                         + POS(ZW_Suchen,UPPER(KD_BankBez.I)),
  2367.                                         + POS(ZW_Suchen,UPPER(KD_BLZ.I)),
  2368.                                         + POS(ZW_Suchen,UPPER(KD_Konto.I)),
  2369.                                         + POS(ZW_Suchen,UPPER(KD_BankKurz.I)) > 0 THEN
  2370.                                         DO;
  2371.                                             x = I;
  2372.                                             I = 0;
  2373.                                         END;
  2374.                                 END;
  2375.                                 IF x = "Nein" THEN
  2376.                                     rtezrequest("Der Begriff konnte nicht nochmal gefunden werden",,,ReqCent);
  2377.                                 ELSE
  2378.                                     DO;
  2379.                                         ZW_KundenNr = x;
  2380.                                         CALL UP_Kunden_alles;
  2381.                                         CALL UP_ReErst_fuellen;
  2382.                                     END;
  2383.                             END;
  2384.                     END;
  2385.             END;
  2386.         WHEN msgid4 = 46 | msgclass4 = CLOSEWINDOW | msgcode4 = 69 | msgcode4 = 101 | msgcode4 = 27 THEN
  2387.             DO;
  2388.                 CALL UP_Kunde_OK;
  2389.                 extime4 = 1;
  2390.             END;
  2391.         WHEN msgid4 = 47 | msgcode4 = 68 | msgcode4 = 100 THEN
  2392.             DO;
  2393.                 CALL UP_Kunde_OK;
  2394.                 CALL UP_Drucken;
  2395.             END;
  2396.         WHEN msgid4 = 48 THEN
  2397.             DO;
  2398.                 Druckart = GETVALUE(mlabels4,msgcode4*4,4,'s');
  2399.                 SELECT;
  2400.                     WHEN Druckart = "Firma" THEN
  2401.                         CALL UP_Firma_alles;
  2402.                     WHEN Druckart = "Kunden" THEN
  2403.                         CALL UP_Kunden_alles;
  2404.                     OTHERWISE
  2405.                         NOP;
  2406.                 END;
  2407.                 CALL UP_ReErst_fuellen;
  2408.             END;
  2409.         OTHERWISE
  2410.             NOP;
  2411.     END;
  2412. RETURN 1;
  2413.  
  2414. Auswertung5:
  2415.     SELECT
  2416.         WHEN msgcode5    = 66 | msgcode5 = 98 THEN
  2417.             ACTIVATEGADID(10,w5,null());
  2418.         WHEN msgid5        = 10 THEN
  2419.             ZW_ArtBez    = GETSTRGAD(w5,10,null());
  2420.         WHEN msgcode5    = 80 | msgcode5 = 112 THEN
  2421.             ACTIVATEGADID(11,w5,null());
  2422.         WHEN msgid5        = 11 THEN
  2423.             ZW_ArtPreis    = GETSTRGAD(w5,11,null());
  2424.         WHEN msgcode5    = 85 | msgcode5 = 117 THEN
  2425.             ACTIVATEGADID(12,w5,null());
  2426.         WHEN msgid5        = 12 THEN
  2427.             ZW_ArtBuch    = GETSTRGAD(w5,12,null());
  2428.         WHEN msgcode5    = 77 | msgcode5 = 109 THEN
  2429.             ACTIVATEGADID(13,w5,null());
  2430.         WHEN msgid5        = 13 THEN
  2431.             ZW_ArtMWSt    = GETSTRGAD(w5,13,null());
  2432.         WHEN msgcode5    = 72 | msgcode5 = 104 THEN
  2433.             ACTIVATEGADID(41,w5,null());
  2434.         WHEN msgid5        = 41 THEN /* Suchbegriff wurde eingegeben/geändert */
  2435.             DO;
  2436.                 Test = GETSTRGAD(w5,41,null());
  2437.                 IF Test = "" THEN
  2438.                     ZW_Suchen = "";
  2439.                 ELSE
  2440.                     DO;
  2441.                         CALL UP_Artikel_OK;
  2442.                         j = LENGTH(Test);
  2443.                         x = "Nein";
  2444.                         Test = UPPER(Test);
  2445.                         DO I = 1 TO A_max;
  2446.                             I = right("000000" || I,6);
  2447.                             IF POS(Test,UPPER(AR_ArtBez.I)),
  2448.                                 + POS(Test,UPPER(AR_ArtPreis.I)),
  2449.                                 + POS(Test,UPPER(AR_ArtBuch.I)) > 0 THEN
  2450.                                 DO;
  2451.                                     x = I;
  2452.                                     I = A_max;
  2453.                                 END;
  2454.                         END;
  2455.                         ZW_Suchen = Test;
  2456.                         IF x = "Nein" THEN
  2457.                             rtezrequest("Der Begriff konnte nicht gefunden werden",,,ReqCent);
  2458.                         ELSE
  2459.                             DO;
  2460.                                 ZW_ArtikelNr = x;
  2461.                                 CALL UP_Artikel_alles;
  2462.                                 CALL UP_ArtErst_fuellen;
  2463.                             END;
  2464.                     END;
  2465.             END;
  2466.         WHEN msgcode5 = 65 | msgcode5 = 97 THEN
  2467.             ACTIVATEGADID(43,w5,null());
  2468.         WHEN msgid5 = 43 THEN /* Artikelnummer wurde eingegeben/geändert */
  2469.             DO;
  2470.                 Test = GETSTRGAD(w5,43,null());
  2471.                 IF Test = ZW_ArtikelNr THEN
  2472.                     NOP;
  2473.                 ELSE
  2474.                     DO;
  2475.                         CALL UP_Artikel_OK;
  2476.                         ZW_ArtikelNr = Test;
  2477.                         IF DATATYPE(ZW_ArtikelNr,'n') THEN
  2478.                             DO;
  2479.                                 IF ZW_ArtikelNr > A_max  THEN
  2480.                                     ZW_ArtikelNr = A_max;
  2481.                                 ZW_ArtikelNr = RIGHT("000000" || ZW_ArtikelNr,6);
  2482.                             END;
  2483.                         ELSE
  2484.                             DO;
  2485.                                 rtezrequest("Artikelnummer nicht numerisch, bitte prüfen!",,,ReqCent);
  2486.                                 ZW_ArtikelNr = "000001";
  2487.                             END;
  2488.                         CALL UP_Artikel_alles;
  2489.                         CALL UP_ArtErst_fuellen;
  2490.                     END;
  2491.             END;
  2492.         WHEN msgid5 = 44 | msgcode5 = 62 THEN
  2493.             DO;
  2494.                 IF ZW_Suchen = "" THEN
  2495.                     DO;
  2496.                         Test = ZW_ArtikelNr + 1;
  2497.                         CALL UP_Artikel_OK;
  2498.                         ZW_ArtikelNr = right("000000" || Test,6);
  2499.                         IF ZW_ArtikelNr > A_max THEN
  2500.                             ZW_ArtikelNr = A_max;
  2501.                         ELSE
  2502.                             DO;
  2503.                                 CALL UP_Artikel_alles;
  2504.                                 CALL UP_ArtErst_fuellen;
  2505.                             END;
  2506.                     END;
  2507.                 ELSE
  2508.                     DO;
  2509.                         x = "Nein";
  2510.                         DO I = (ZW_ArtikelNr + 1) TO (A_max-1);
  2511.                             I = right("000000" || I,6);
  2512.                             IF POS(ZW_Suchen,UPPER(AR_ArtBez.I)),
  2513.                                 + POS(ZW_Suchen,UPPER(AR_ArtPreis.I)),
  2514.                                 + POS(ZW_Suchen,UPPER(AR_ArtBuch.I)) > 0 THEN
  2515.                                 DO;
  2516.                                     x = I;
  2517.                                     I = A_max;
  2518.                                 END;
  2519.                         END;
  2520.                         IF x = "Nein" THEN
  2521.                             rtezrequest("Der Begriff konnte nicht nochmal gefunden werden",,,ReqCent);
  2522.                         ELSE
  2523.                             DO;
  2524.                                 ZW_ArtikelNr = x;
  2525.                                 CALL UP_Artikel_alles;
  2526.                                 CALL UP_ArtErst_fuellen;
  2527.                             END;
  2528.                     END;
  2529.             END;
  2530.         WHEN msgid5 = 45 | msgcode5 = 60 THEN
  2531.             DO;
  2532.                 IF ZW_Suchen = "" THEN
  2533.                     DO;
  2534.                         Test = ZW_ArtikelNr - 1;
  2535.                         CALL UP_Artikel_OK;
  2536.                         ZW_ArtikelNr = right("000000" || Test,6);
  2537.                         IF ZW_ArtikelNr < 000001 THEN
  2538.                             ZW_ArtikelNr = "000001";
  2539.                         ELSE
  2540.                             DO;
  2541.                                 CALL UP_Artikel_alles;
  2542.                                 CALL UP_ArtErst_fuellen;
  2543.                             END;
  2544.                     END;
  2545.                 ELSE
  2546.                     DO;
  2547.                         x = "Nein";
  2548.                         DO I = (ZW_ArtikelNr - 1) TO 1 BY -1;
  2549.                             I = right("000000" || I,6);
  2550.                             IF POS(ZW_Suchen,UPPER(AR_ArtBez.I)),
  2551.                                 + POS(ZW_Suchen,UPPER(AR_ArtPreis.I)),
  2552.                                 + POS(ZW_Suchen,UPPER(AR_ArtBuch.I)) > 0 THEN
  2553.                                 DO;
  2554.                                     x = I;
  2555.                                     I = 0;
  2556.                                 END;
  2557.                         END;
  2558.                         IF x = "Nein" THEN
  2559.                             rtezrequest("Der Begriff konnte nicht nochmal gefunden werden",,,ReqCent);
  2560.                         ELSE
  2561.                             DO;
  2562.                                 ZW_ArtikelNr = x;
  2563.                                 CALL UP_Artikel_alles;
  2564.                                 CALL UP_ArtErst_fuellen;
  2565.                             END;
  2566.                     END;
  2567.             END;
  2568.         WHEN msgid5 = 46 | msgclass5 = CLOSEWINDOW | msgcode5 = 69 | msgcode5 = 101 | msgcode5 = 27 THEN
  2569.             DO;
  2570.                 CALL UP_Artikel_OK;
  2571.                 extime5 = 1;
  2572.             END;
  2573.         WHEN msgid5 = 47 | msgcode5 = 68 | msgcode5 = 100 THEN
  2574.             DO;
  2575.                 CALL UP_Artikel_OK;
  2576.                 CALL UP_Drucken;
  2577.             END;
  2578.         WHEN msgid5 = 48 THEN
  2579.             DO;
  2580.                 CALL UP_Artikel_alles;
  2581.                 CALL UP_ArtErst_fuellen;
  2582.             END;
  2583.         OTHERWISE
  2584.             NOP;
  2585.     END;
  2586. RETURN 1;
  2587.  
  2588. Auswertung6:
  2589.     SELECT
  2590.         WHEN msgcode6    = 33 | msgcode6 = 49 THEN
  2591.             ACTIVATEGADID(10,w6,null());
  2592.         WHEN msgid6        = 10 THEN
  2593.             DO;
  2594.                 Test        = GETSTRGAD(w6,msgid6,null());
  2595.                 IF Test ~= MWSt_Satz.1 THEN
  2596.                     DO;
  2597.                         IF datatype(Test,'n') THEN
  2598.                             MWSt_Satz.1 = Test;
  2599.                         ELSE
  2600.                             MWSt_Satz.1 = 15.0;
  2601.                         CALL SETSTRGADID(w6,msgid6,UEB_RechNr,null());
  2602.                         REFRESHGLIST(conxgad6,w6,null(),-1);
  2603.                         MWSt_Rech.1 = MWSt_Satz.1 / (100 + MWSt_Satz.1);
  2604.                     END;
  2605.             END;
  2606.         WHEN msgcode6    = 34 | msgcode6    = 50 THEN
  2607.             ACTIVATEGADID(11,w6,null());
  2608.         WHEN msgid6        = 11 THEN
  2609.             DO;
  2610.                 Test        = GETSTRGAD(w6,msgid6,null());
  2611.                 IF Test ~= MWSt_Satz.2 THEN
  2612.                     DO;
  2613.                         IF datatype(Test,'n') THEN
  2614.                             MWSt_Satz.2 = Test;
  2615.                         ELSE
  2616.                             MWSt_Satz.2 = 7.0;
  2617.                         CALL SETSTRGADID(w6,msgid6,UEB_RechNr,null());
  2618.                         REFRESHGLIST(conxgad6,w6,null(),-1);
  2619.                         MWSt_Rech.2 = MWSt_Satz.2 / (100 + MWSt_Satz.2);
  2620.                     END;
  2621.             END;
  2622.         WHEN msgcode6    = 87 | msgcode6 =    119 | msgid6    = 12  THEN
  2623.             DO;
  2624.                 Test = rtfilerequest("Drucker",,"Druckerauswahl");
  2625.                 IF Test > 0 THEN
  2626.                     DO;
  2627.                         Druckdatei = Test
  2628.                         CALL pitext(rpw6,7.8*Font_X,7.2*Font_Y,right(Druckdatei,12),apen,0,jam2,scrfont);
  2629.                         CALL UP_Druckdaten_lesen;
  2630.                     END;
  2631.             END;
  2632.         WHEN msgcode6    = 80 | msgcode4 = 112 THEN
  2633.             ACTIVATEGADID(14,w4,null());
  2634.         WHEN msgid6        = 14 THEN
  2635.             Druckport    = GETSTRGAD(w6,msgid6,null());
  2636.         WHEN msgcode6    = 88 | msgcode4 = 120 THEN
  2637.             ACTIVATEGADID(15,w6,null());
  2638.         WHEN msgid6        = 15 THEN
  2639.             DO;
  2640.                 Test        = GETSTRGAD(w6,msgid6,null());
  2641.                 IF Test ~= D_XAbst THEN
  2642.                     DO;
  2643.                         IF datatype(Test,'w') THEN
  2644.                             D_XAbst = Test;
  2645.                         ELSE
  2646.                             DO;
  2647.                                 D_XAbst = 1;
  2648.                                 CALL SETSTRGADID(w6,msgid6,D_XAbst,null());
  2649.                                 REFRESHGLIST(conxgad6,w6,null(),-1);
  2650.                             END;
  2651.                     END;
  2652.             END;
  2653.         WHEN msgcode6    = 89 | msgcode6 = 121 THEN
  2654.             ACTIVATEGADID(16,w4,null());
  2655.         WHEN msgid6        = 16 THEN
  2656.             DO;
  2657.                 Test        = GETSTRGAD(w6,msgid6,null());
  2658.                 IF Test ~= D_YAbst THEN
  2659.                     DO;
  2660.                         IF datatype(Test,'w')  THEN
  2661.                             D_YAbst = Test;
  2662.                         ELSE
  2663.                             DO;
  2664.                                 D_YAbst = 1;
  2665.                                 CALL SETSTRGADID(w6,msgid6,D_YAbst,null());
  2666.                                 REFRESHGLIST(conxgad6,w6,null(),-1);
  2667.                             END;
  2668.                     END;
  2669.             END;
  2670.         WHEN msgid6 = 17 | msgclass6 = CLOSEWINDOW | msgcode6 = 69 | msgcode6 = 101 | msgcode6 = 27 THEN
  2671.             extime6 = 1;
  2672.         OTHERWISE
  2673.             NOP;
  2674.     END;
  2675. RETURN 1;
  2676.  
  2677. UP_Kunden_alles:
  2678.     ZW_VorName    = KD_VorName.ZW_KundenNr;
  2679.     ZW_Name        = KD_Name.ZW_KundenNr;
  2680.     ZW_Strasse    = KD_Strasse.ZW_KundenNr;
  2681.     ZW_PLZ        = KD_PLZ.ZW_KundenNr;
  2682.     ZW_Ort        = KD_Ort.ZW_KundenNr;
  2683.     ZW_Land        = KD_Land.ZW_KundenNr;
  2684.     ZW_GebTag    = KD_GebTag.ZW_KundenNr;
  2685.     ZW_Tel        = KD_Tel.ZW_KundenNr;
  2686.     ZW_Fax        = KD_Fax.ZW_KundenNr;
  2687.     ZW_Dfue        = KD_Dfue.ZW_KundenNr;
  2688.     ZW_EMail1    = KD_EMail1.ZW_KundenNr;
  2689.     ZW_EMail2    = KD_EMail2.ZW_KundenNr;
  2690.     ZW_EMail3    = KD_EMail3.ZW_KundenNr;
  2691.     ZW_Anrede    = KD_Anrede.ZW_KundenNr;
  2692.     ZW_BAnr        = KD_BAnr.ZW_KundenNr;
  2693.     ZW_Komm        = KD_Komm.ZW_KundenNr;
  2694.     ZW_BankBez    = KD_BankBez.ZW_KundenNr;
  2695.     ZW_BLZ        = KD_BLZ.ZW_KundenNr;
  2696.     ZW_Konto        = KD_Konto.ZW_KundenNr;
  2697.     ZW_BankKurz    = KD_BankKurz.ZW_KundenNr;
  2698.     ZW_Rabatt    = KD_Rabatt.ZW_KundenNr;
  2699. RETURN;
  2700.  
  2701. UP_Firma_alles:
  2702.     ZW_VorName    = FI_VorName;
  2703.     ZW_Name        = FI_Name;
  2704.     ZW_Strasse    = FI_Strasse;
  2705.     ZW_PLZ        = FI_PLZ;
  2706.     ZW_Ort        = FI_Ort;
  2707.     ZW_Land        = FI_Land;
  2708.     ZW_GebTag    = FI_GebTag;
  2709.     ZW_Tel        = FI_Tel;
  2710.     ZW_Fax        = FI_Fax;
  2711.     ZW_Dfue        = FI_Dfue;
  2712.     ZW_EMail1    = FI_EMail1;
  2713.     ZW_EMail2    = FI_EMail2;
  2714.     ZW_EMail3    = FI_EMail3;
  2715.     ZW_Anrede    = FI_Anrede;
  2716.     ZW_BAnr        = FI_BAnr;
  2717.     ZW_Komm        = FI_Komm;
  2718.     ZW_BankBez    = FI_BankBez;
  2719.     ZW_BLZ        = FI_BLZ;
  2720.     ZW_Konto        = FI_Konto;
  2721.     ZW_BankKurz    = FI_BankKurz;
  2722.     ZW_Rabatt    = FI_Rabatt;
  2723. RETURN;
  2724.  
  2725. UP_ReErst_fuellen:
  2726.     CALL SETSTRGADID(w4,10,ZW_VorName,null());
  2727.     CALL SETSTRGADID(w4,11,ZW_Name,null());
  2728.     CALL SETSTRGADID(w4,12,ZW_Strasse,null());
  2729.     CALL SETSTRGADID(w4,13,ZW_PLZ,null());
  2730.     CALL SETSTRGADID(w4,14,ZW_Ort,null());
  2731.     CALL SETSTRGADID(w4,15,ZW_Land,null());
  2732.     CALL SETSTRGADID(w4,16,ZW_GebTag,null());
  2733.     CALL SETSTRGADID(w4,17,ZW_Tel,null());
  2734.     CALL SETSTRGADID(w4,18,ZW_Fax,null());
  2735.     CALL SETSTRGADID(w4,19,ZW_Dfue,null());
  2736.     CALL SETSTRGADID(w4,20,ZW_EMail1,null());
  2737.     CALL SETSTRGADID(w4,21,ZW_EMail2,null());
  2738.     CALL SETSTRGADID(w4,22,ZW_EMail3,null());
  2739.     CALL SETSTRGADID(w4,23,ZW_Anrede,null());
  2740.     CALL SETSTRGADID(w4,24,ZW_BAnr,null());
  2741.     CALL SETSTRGADID(w4,25,ZW_Komm,null());
  2742.     CALL SETSTRGADID(w4,26,ZW_BankBez,null());
  2743.     CALL SETSTRGADID(w4,27,ZW_BLZ,null());
  2744.     CALL SETSTRGADID(w4,28,ZW_Konto,null());
  2745.     CALL SETSTRGADID(w4,29,ZW_BankKurz,null());
  2746.     CALL SETSTRGADID(w4,30,ZW_Rabatt,null());
  2747.     CALL SETSTRGADID(w4,43,ZW_KundenNr,null());
  2748.     CALL SETSTRGADID(w4,41,ZW_Suchen,null());
  2749.     REFRESHGLIST(conxgad4,w4,null(),-1);
  2750. RETURN;
  2751.  
  2752. UP_Kunde_OK:
  2753.     SELECT;
  2754.         WHEN Druckart = "Firma" THEN
  2755.             DO;
  2756.                 FI_VorName    = ZW_VorName;
  2757.                 FI_Name        = ZW_Name;
  2758.                 FI_Strasse    = ZW_Strasse;
  2759.                 FI_PLZ        = ZW_PLZ;
  2760.                 FI_Ort        = ZW_Ort;
  2761.                 FI_Land        = ZW_Land;
  2762.                 FI_GebTag    = ZW_GebTag;
  2763.                 FI_Tel        = ZW_Tel;
  2764.                 FI_Fax        = ZW_Fax;
  2765.                 FI_Dfue        = ZW_Dfue;
  2766.                 FI_EMail1    = ZW_EMail1;
  2767.                 FI_EMail2    = ZW_EMail2;
  2768.                 FI_EMail3    = ZW_EMail3;
  2769.                 FI_Anrede    = ZW_Anrede;
  2770.                 FI_BAnr        = ZW_BAnr;
  2771.                 FI_Komm        = ZW_Komm;
  2772.                 FI_BankBez    = ZW_BankBez;
  2773.                 FI_BLZ        = ZW_BLZ;
  2774.                 FI_Konto        = ZW_Konto;
  2775.                 FI_BankKurz    = ZW_BankKurz;
  2776.                 FI_Rabatt    = ZW_Rabatt;
  2777.             END;
  2778.         WHEN Druckart = "Kunden" THEN
  2779.             DO;
  2780.                 KD_VorName.ZW_KundenNr    = ZW_VorName;
  2781.                 KD_Name.ZW_KundenNr        = ZW_Name;
  2782.                 KD_Strasse.ZW_KundenNr    = ZW_Strasse;
  2783.                 KD_PLZ.ZW_KundenNr        = ZW_PLZ;
  2784.                 KD_Ort.ZW_KundenNr        = ZW_Ort;
  2785.                 KD_Land.ZW_KundenNr        = ZW_Land;
  2786.                 KD_GebTag.ZW_KundenNr    = ZW_GebTag;
  2787.                 KD_Tel.ZW_KundenNr        = ZW_Tel;
  2788.                 KD_Fax.ZW_KundenNr        = ZW_Fax;
  2789.                 KD_Dfue.ZW_KundenNr        = ZW_Dfue;
  2790.                 KD_EMail1.ZW_KundenNr    = ZW_EMail1;
  2791.                 KD_EMail2.ZW_KundenNr    = ZW_EMail2;
  2792.                 KD_EMail3.ZW_KundenNr    = ZW_EMail3;
  2793.                 KD_Anrede.ZW_KundenNr    = ZW_Anrede;
  2794.                 KD_BAnr.ZW_KundenNr        = ZW_BAnr;
  2795.                 KD_Komm.ZW_KundenNr        = ZW_Komm;
  2796.                 KD_BankBez.ZW_KundenNr    = ZW_BankBez;
  2797.                 KD_BLZ.ZW_KundenNr        = ZW_BLZ;
  2798.                 KD_Konto.ZW_KundenNr        = ZW_Konto;
  2799.                 KD_BankKurz.ZW_KundenNr    = ZW_BankKurz;
  2800.                 KD_Rabatt.ZW_KundenNr    = ZW_Rabatt;
  2801.             END;
  2802.         OTHERWISE
  2803.             NOP;
  2804.     END;
  2805.     IF ZW_Name > "" & ZW_KundenNr = K_max then
  2806.         DO;
  2807.             K_max = K_max + 1;
  2808.             CALL UP_K_max_init;
  2809.         END;
  2810.     ELSE IF ZW_Name = "" & ZW_KundenNr = (K_max -1) then
  2811.         DO;
  2812.             K_max = ZW_KundenNr;
  2813.             CALL UP_K_max_init;
  2814.         END;
  2815.     DefGads4 = 2;
  2816. RETURN;
  2817.  
  2818. UP_Artikel_alles:
  2819.     ZW_ArtBez    = AR_ArtBez.ZW_ArtikelNr;
  2820.     ZW_ArtPreis    = AR_ArtPreis.ZW_ArtikelNr;
  2821.     ZW_ArtBuch    = AR_ArtBuch.ZW_ArtikelNr;
  2822.     ZW_ArtMWSt    = AR_ArtMWSt.ZW_ArtikelNr;
  2823. RETURN;
  2824.  
  2825. UP_ArtErst_fuellen:
  2826.     CALL SETSTRGADID(w5,10,ZW_ArtBez,null());
  2827.     CALL SETSTRGADID(w5,11,ZW_ArtPreis,null());
  2828.     CALL SETSTRGADID(w5,12,ZW_ArtBuch,null());
  2829.     CALL SETSTRGADID(w5,13,ZW_ArtMWSt,null());
  2830.     CALL SETSTRGADID(w5,43,ZW_ArtikelNr,null());
  2831.     REFRESHGLIST(conxgad5,w5,null(),-1);
  2832. RETURN;
  2833.  
  2834. UP_Artikel_OK:
  2835.     IF AR_ArtBez.ZW_ArtikelNr    = ZW_ArtBez &,
  2836.         AR_ArtPreis.ZW_ArtikelNr= ZW_ArtPreis &,
  2837.         AR_ArtBuch.ZW_ArtikelNr    = ZW_ArtBuch &,
  2838.         AR_ArtMWSt.ZW_ArtikelNr    = ZW_ArtMWSt THEN
  2839.         NOP;
  2840.     ELSE;
  2841.         DO;
  2842.             AR_ArtBez.ZW_ArtikelNr    = ZW_ArtBez;
  2843.             AR_ArtPreis.ZW_ArtikelNr= ZW_ArtPreis;
  2844.             AR_ArtBuch.ZW_ArtikelNr    = ZW_ArtBuch;
  2845.             AR_ArtMWSt.ZW_ArtikelNr    = ZW_ArtMWSt;
  2846.             IF ZW_ArtBez > "" & ZW_ArtikelNr = A_max then
  2847.                 DO;
  2848.                     A_max = A_max + 1;
  2849.                     CALL UP_A_max_init;
  2850.                 END;
  2851.             ELSE IF ZW_ArtBez = "" & ZW_ArtikelNr = A_max - 1 then
  2852.                 DO;
  2853.                     A_max = A_max - 1;
  2854.                     CALL UP_A_max_init;
  2855.                 END;
  2856.             DefGads5 = 2;
  2857.         END;
  2858. RETURN;
  2859.  
  2860. UP_Rechnung_OK:
  2861.     Art_gr_null = 0;
  2862.     IF RE_Kunde.UEB_RechNr ~= ZW_KundenNr THEN
  2863.         DO;  
  2864.             RE_Kunde.UEB_RechNr = ZW_KundenNr;
  2865.             DefGads2 = 2;
  2866.         END;
  2867.     DO z = 1 to I_Max;
  2868.         IF RE_Art.z.UEB_RechNr ~= ZW_Art_Nr.z |,
  2869.             RE_Anz.z.UEB_RechNr ~= ZW_Art_Anz.z THEN
  2870.             DO;
  2871.                 RE_Art.z.UEB_RechNr = ZW_Art_Nr.z;
  2872.                 RE_Anz.z.UEB_RechNr = ZW_Art_Anz.z;
  2873.                 DefGads2 = 2;
  2874.             END;
  2875.         IF ZW_Art_Nr.z > "" THEN
  2876.             Art_gr_null = 1;
  2877.     END;
  2878.     IF Art_gr_null = 1 & UEB_RechNr = R_max THEN
  2879.         DO; 
  2880.             R_max = R_max + 1;
  2881.             CALL UP_Rech_max_init;
  2882.         END;
  2883.     ELSE IF Art_gr_null = 0 & UEB_RechNr = (R_max - 1) THEN
  2884.         DO;
  2885.             R_max = R_max - 1;
  2886.             CALL UP_Rech_max_init;
  2887.         END;
  2888. RETURN;
  2889.  
  2890. UP_R_Berechnung:
  2891.     ZW_MWSt = 0;
  2892.     ZW_Endsumme = 0;
  2893.     ZW_Rab = 0;
  2894.     ZW_KundenNr = RE_Kunde.UEB_RechNr;
  2895.     ZW_Rabatt = KD_Rabatt.ZW_KundenNr
  2896.     IF ~DATATYPE(ZW_Rabatt,'n') THEN
  2897.         ZW_Rabatt = 0;
  2898.     ZW_Rabatt = ZW_Rabatt / 100;
  2899.     DO j = 1 to I_Max;
  2900.         ZW_Art_Nr.j = RE_Art.j.UEB_RechNr;
  2901.         IF ZW_Art_Nr.j > "" THEN
  2902.             DO;
  2903.                 x                = ZW_Art_Nr.j;
  2904.                 ZW_EPreis.j    = AR_ArtPreis.x;
  2905.                 ZW_ArtBez.j    = AR_ArtBez.x;
  2906.                 ZW_Menge.j    = RE_Anz.j.UEB_RechNr;
  2907.                 ZW_Summe.j  = (ZW_EPreis.j * ZW_Menge.j) + 0.005;
  2908.                 IF ZW_Summe.j < 0 THEN
  2909.                     ZW_Summe.j  = ZW_Summe.j - 0.01;
  2910.                 ZW_Summe.j    = trunc(ZW_Summe.j,2);
  2911.                 ZW_Rab        = ZW_Rab + (ZW_Summe.j * ZW_Rabatt);
  2912.                 ZW_Summe.j    = right(ZW_Summe.j,10);
  2913.                 ZW_Endsumme    = ZW_Endsumme + ZW_Summe.j;
  2914.                 z    = AR_ArtMWSt.x;
  2915.                 ZW_MWSt = ZW_MWSt + ((ZW_Summe.j - (ZW_Summe.j * ZW_Rabatt)) * MWSt_Rech.z);
  2916.             END;
  2917.         ELSE
  2918.             DO;
  2919.                 ZW_Summe.j    = "";
  2920.                 ZW_Art_Nr.j    = "";
  2921.                 ZW_Art_Bez.j= "";
  2922.                 ZW_EPreis.j    = "";
  2923.                 ZW_ArtBez.j    = "";
  2924.          END;
  2925.     END;
  2926.     ZW_Endsumme    = right(trunc(ZW_Endsumme - ZW_Rab + 0.005,2),10);
  2927.     ZW_Rab        = right(trunc(ZW_Rab + 0.005,2),9);
  2928.     ZW_MWSt        = right(trunc(ZW_MWSt + 0.005,2),9);
  2929. RETURN;
  2930.  
  2931. /* Unterprogramm zum   S P E R R E N   von Texten                            */
  2932. UP_Sperr: procedure expose units;
  2933.     parse arg ZW_Text;
  2934.     Text_Sperr = "";
  2935.     DO i = 1 to length(ZW_Text);
  2936.         Text_Sperr = Text_Sperr || substr(ZW_Text,i,1) || " ";
  2937.     END;
  2938. RETURN Text_Sperr;
  2939.  
  2940. /* Unterprogramm zur Ermittlung des aktuellen Datums                        */
  2941. UP_Datum:procedure;
  2942.     tt = SUBSTR(DATE(s),7,2);                        /* Tag im Monat            */
  2943.     mm = SUBSTR(DATE(s),5,2);                        /* Monat                        */
  2944.     jjjj = right(DATE(n),4);                        /* Jahr und Jahrhundert    */
  2945.     datum = tt || "." || mm || "." || jjjj;    /* zusammenfügen            */
  2946. RETURN datum;
  2947.